我遇到EntityFramework
的问题。在我的应用程序中有一个异步GetCollections
方法,它将返回一个`Task>:
public async Task<List<MyCollection>> GetCollections() {,
IQueryable<MyCollection> query;
query = ...;
var result = await query.ToListAsync();
return result;
}
问题是ToListAsync()
调用,它创建(看起来像)实体的副本。当我稍后修改一些返回的集合并调用DbContext.SaveChanges()
时会抛出异常,因为要存储具有相同主键的多个实体。所以我的问题是,我该怎么办呢?
编辑:
好的,我已经重写了这个方法,而不是返回IQueriable
。这解决了具有相同主键的多个实体的问题,但是当循环遍历IQueriable和修改实体时,抛出异常,因为无法实例化到数据库的第二个连接。还有其他类型我可以返回,这解决了这个问题吗?