gpt4 book ai didi

c# - 实体对象不能被 IEntityChangeTracker 的多个实例引用无法修复

转载 作者:行者123 更新时间:2023-11-30 16:58:37 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

关于c# - 实体对象不能被 IEntityChangeTracker 的多个实例引用无法修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com