switch (entry.State)
{
case EntityState.Added:
entry.State = EntityState.Detached;
break;
case EntityState.Modified:
entry.CurrentValues.SetValues(entry.OriginalValues);
entry.State = EntityState.Unchanged;
break;
case EntityState.Deleted:
entry.State = EntityState.Unchanged;
break;
}
每当有异常时,执行此代码以更改EF上下文的状态。问题是异常延迟加载后不再起作用。同样是在EntityState.Detached
被调用之后。
为什么延迟加载不起作用?我可以以某种方式重新加载延迟加载的整个上下文或做什么?
答案 0 :(得分:1)
我认为您需要在将实体设置为Detached
后明确附加实体。
context.Blogs.Attach(existingBlog);
这应该启用更改跟踪和延迟加载。
另外
context.Configuration.ProxyCreationEnabled应为true。 context.Configuration.LazyLoadingEnabled应为true。
请参阅此MSDN文章: