C#EF6延迟加载在exeption之后或在分离状态之后不起作用

时间:2016-05-10 09:53:10

标签: c# entity-framework

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被调用之后。

为什么延迟加载不起作用?我可以以某种方式重新加载延迟加载的整个上下文或做什么?

1 个答案:

答案 0 :(得分:1)

我认为您需要在将实体设置为Detached后明确附加实体。

context.Blogs.Attach(existingBlog); 

这应该启用更改跟踪和延迟加载。

另外

  

context.Configuration.ProxyCreationEnabled应为true。   context.Configuration.LazyLoadingEnabled应为true。

请参阅此MSDN文章:

https://msdn.microsoft.com/en-us/data/jj592676.aspx