2014-07-09 57 views
0

的實體我在使用Microsoft.OData.Client.DataServiceCollection實例並調用Load(...)時出現以下異常。 )或添加(...): 實體集名稱尚未提供給類型實體。Microsoft.OData.Client.DataServiceCollection <T>異常:實體集名稱尚未提供給類型爲

例如:

DataServiceCollection<TEntity> collection = 
new DataServiceCollection<TEntity>(_repoDataServiceQuery); 
collection.Load(entity); 

對我缺少什麼,以避免該異常有什麼建議?

回答

1

是_repoDataServicerQuery查詢entityset或您從服務器獲得的IEnumerable實體?在這種情況下,您在構建DataServiceCollection時不需要提供該實體集名稱,它將爲您找到並設置它,因爲查詢或項目中包含的信息足夠多。否則,如果您只想要一個空的DataServiceCollection來添加或加載實體,則需要設置該實體集名稱以告訴它要添加或加載哪個實體集。例如:

DataServiceCollection<Customer> customers = 
    new DataServiceCollection<Customer>(context, "Customers"/*entityset name*/, null, null); 
var customer = new Customer(); 
customers.Add(customer); 

構造函數是

public DataServiceCollection(DataServiceContext context, string entitySetName, Func<EntityChangedParams, bool> entityChangedCallback, Func<EntityCollectionChangedParams, bool> collectionChangedCallback); 

最後兩個函數功能可以簡單地null

+0

朱林,感謝您的快速回復。是的,下面是如何聲明_repoDataServiceQuery:protected readonly DataServiceQuery _repoDataServiceQuery; – AndreyKornich

+0

它的價值如何?它是否分配了類似於'context.TEntities'(TEntity的實體集)? – Junlynn

相關問題