一个实体对象不能被IEntityChangeTracker的多个实例引用

本文关键字:IEntityChangeTracker 实例 引用 对象 一个 实体 不能 | 更新日期: 2023-09-27 18:15:36

我是波斯人,我不太懂英语…对不起,如果我写得不好!我在这个网站上看到这个问题好几次,但我不能通过他们解决我的问题,所以我再问一次,这是我的代码

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();
}

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

一个实体对象不能被IEntityChangeTracker的多个实例引用

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

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

相关文章:
  • 没有找到相关文章