【问题标题】:Lazy loading issues with IdentityDbContextIdentityDbContext 的延迟加载问题
【发布时间】:2016-04-01 15:49:40
【问题描述】:

我正在使用 Asp.NET Identity。我创建了一个包含多个实体的 IdentityDbContext(线性关系:用户→帐户→语句)。

Account.Statements 导航属性在被上下文实例化时为空事件:

using (var ctx = new MyContext())
{
    var account = ctx.Account.Create();
    Debug.Assert(account != null); // fails.
}

MyContext 派生自DbContext 时,所有导航属性正确分配给延迟加载集合。

这是 Asp.Net Identity 的问题吗?有什么方法可以解决这个问题吗?

【问题讨论】:

  • 你在断言account != null,你的意思是account.Statements != null吗?无论如何检查 Statements 属性是否声明为虚拟并在构造函数中对其进行初始化:

标签: c# asp.net entity-framework asp.net-identity-2


【解决方案1】:

根据the documentation,DbSet 的Create 方法 将对象附加到上下文。我发现,如果我附加对象,属性会被正确分配代理集合。

另外,这不是一个真正的问题:我可以自己创建一个集合的实例,然后将对象添加到集合中,Entity Framework 将正确地提交相关项目。

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多