gpt4 book ai didi

c# - Linq2Sql : Manage DataContext

转载 作者:太空狗 更新时间:2023-10-30 00:22:38 24 4
gpt4 key购买 nike

在下面的代码中不起作用

public void Foo()
{
CompanyDataContext db = new CompanyDataContext();
Client client = (select c from db.Clients ....).Single();
Bar(client);
}

public void Bar(Client client)
{
CompanyDataContext db = new CompanyDataContext();
db.Client.Attach(client);
client.SomeValue = "foo";
db.SubmitChanges();
}

这不起作用,我收到错误消息。 “已尝试附加或添加不是新的实体,可能是从另一个 DataContext 加载的。这是不支持的。”

您如何在整个应用程序中使用 DataContext,这样您就不需要传递引用?

什么

最佳答案

他们的意思是“不支持”。附加到从另一个数据上下文中获取的对象未实现。

这个问题有很多变通方法,推荐的方法是序列化对象,但这并不容易,也不是一种干净的方法。

我发现的最简单的方法是使用只读 DataContext 来获取对象,如下所示:

        MyDataContext dataContext = new MyDataContext() 
{
DeferredLoadingEnabled = false,
ObjectTrackingEnabled = false
};

从这个上下文中获取的对象可以附加到另一个上下文中,但只适用于某些场景。

关于c# - Linq2Sql : Manage DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380720/

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