我在使用Microsoft.OData.Client.DataServiceCollection实例并在其上调用Load(...)或Add(...)时遇到异常: 尚未为类型的实体提供实体集名称。
例如:
DataServiceCollection<TEntity> collection =
new DataServiceCollection<TEntity>(_repoDataServiceQuery);
collection.Load(entity);
对于我为避免异常而遗漏的内容提出了哪些建议?
答案 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
。