Microsoft.OData.Client.DataServiceCollection <t> exception:尚未为类型为</t>的实体提供实体集名称

时间:2014-07-09 23:34:18

标签: c# entity-framework odata

我在使用Microsoft.OData.Client.DataServiceCollection实例并在其上调用Load(...)或Add(...)时遇到异常: 尚未为类型的实体提供实体集名称。

例如:

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

对于我为避免异常而遗漏的内容提出了哪些建议?

1 个答案:

答案 0 :(得分:3)

_repoDataServicerQuery是实体集的查询还是从服务器获得的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);

最后两个Func可以只是null