2012-07-31 85 views
0

我想在C#中使用ASP.NET Web API和實體框架編寫我的第一個RESTful API。asp.net實體框架鍵的響應

我的問題是,從我的EF查詢返回的列表被污染了無用的實體密鑰信息(我發現,因爲我的列可以爲空,如果認爲它們都必須是鍵)。

這是我從我的API調用

<syemploy z:Id="i1"><EntityKey z:Id="i2"> 
<d2p1:EntityContainerName>AbraHRMS_LiveEntities</d2p1:EntityContainerName> 
<d2p1:EntityKeyValues> 
    <d2p1:EntityKeyMember> 
     <d2p1:Key>id_col</d2p1:Key> 
     <d2p1:Value i:type="d5p1:int">15</d2p1:Value> 
    </d2p1:EntityKeyMember> 
    <d2p1:EntityKeyMember> 
     <d2p1:Key>e_address1</d2p1:Key> 
     <d2p1:Value i:type="d5p1:string">153 Townsend Street, Suite 9057</d2p1:Value> 
    </d2p1:EntityKeyMember> 
... 

接收XML響應的一部分,我怎樣才能從響應刪除實體鍵值? 我的C#代碼如下所示

AbraHRMS_LiveEntities _db = new AbraHRMS_LiveEntities(); 

# GET api/employee 
public List<MvcApplication1.DAL.syemploy> Get() 
{ 
    return _db.syemploys.ToList(); 
} 

再次,這是我在C#第一API,所以如果有什麼是時髦尋找請隨時指出來。

回答

0

默認情況下,您將擁有XML實體中所有實體的公共屬性。爲了避免讓他們作出迴應,請嘗試創建不包含不需要的字段的「新」類,然後將結果轉換爲「新」類型對象列表。您可以在_db.syemployes上使用.Select()或.Cast()。請記住,如果您想調用Cast <>方法,syemploy類應該可以轉換爲「新」類。您可以在C#中閱讀關於類型轉換的here。如果使用.Select(),則在select的lambda表達式內部構造新類型的對象。