【问题标题】:An entity object cannot be referenced by multiple instances of IEntityChangeTracker cant fixIEntityChangeTracker 无法修复的多个实例无法引用实体对象
【发布时间】:2014-07-30 17:25:09
【问题描述】:

我是波斯语,我不太懂英语……如果我写得不好,请见谅! 我在这个网站上多次看到这个问题,但我无法通过他们解决我的问题,所以我再次问这是我的代码

using(DocumentationContext context = new DocumentationContext())
{

    var userInstance = new UserInstance();
        userInstance.UserID = user.UserID;
        userInstance.User = user;
        userInstance.InstanceID = item.InstanceID;
        userInstance.Instance = item;
        userInstance.Code = permission.Code;
        userInstance.Direct = Direct;
        userInstance.BaseCode = BaseCode;
        userInstance.Create = Create;
        userInstance.Edit = Edit;
        userInstance.Delete = Delete;

        context.UserInstances.Add(userInstance);

    context.SaveChanges();
}

这是我的最后一次更改,我搜索了很多但找不到答案,谢谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework


    【解决方案1】:

    itemuser 之一或两者来自DocumentationContext 的不同实例。如果您要使用using,那么您的所有实体都必须在同一using 语句中进行查询、更新。

    为了安全起见,更好的方法是将上下文作为依赖项注入到控制器中。然后在您选择使用的任何 DI 容器的设置中,您应该能够为您的上下文提供一个“请求范围”,这实际上意味着它只会为每个请求创建一个实例。这将确保您永远不会使用上下文的多个实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多