【发布时间】:2015-10-07 10:35:27
【问题描述】:
我遇到了实体框架的问题,当我执行 SaveChanges 时,上下文有很多与之关联的对象,一些对象被更新并添加了一些对象,之后我想使用所有这些的 Id项目(添加项目的 ID 仅在插入数据库时分配)。保存更改后,所有对象的列表为空。
我在网站上看到了保存后更新对象的示例,所以我怀疑这可能是我首先获取对象列表的方式
这是我的代码:
// Lots of processing to create or update objects
using (var localContext = this.context)
{
var updatedObjects = localContext.ChangeTracker.Entries().Where(e => e.Entity is GenerationEvent && (e.State == EntityState.Modified || e.State == EntityState.Added));
var updatedEvents = updatedObjects.Select(e => (GenerationEvent)e.Entity);
// The list has 5 items in at this point
localContext.SaveChanges();
// This list is now empty
DoSomethingWithList(updatedEvents);
}
提前感谢您的帮助。
【问题讨论】:
-
updatedEvents不是list,而是 Linq 查询,只要您枚举它就会重新执行。如果你想缓存它以备后用,请将.ToList()放在updateEvents赋值行的末尾。
标签: c# entity-framework linq c#-4.0 entity-framework-6