一个实体对象不能被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();
}
这是我最后一次更改,我搜索了很多,找不到答案,谢谢
item
和user
中的一个或两个来自DocumentationContext
的不同实例。如果您要使用using
,那么必须在同一个using
语句中查询、更新所有实体。
为了安全起见,更好的方法是将上下文作为依赖项注入到控制器。然后,在您选择使用的任何DI容器的设置中,您都应该能够为上下文提供一个"请求范围",这实际上意味着它只会为每个请求创建一个实例。这将确保您永远不会使用上下文的多个实例。