Nie*_*sma 4 c# asp.net linq-to-sql
在以下代码中不起作用
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();
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,我收到错误信息."已经尝试附加或添加一个非新的实体,可能是从另一个DataContext加载的.这是不受支持的."
如何在整个应用程序中使用DataContexts,这样您就不需要传递引用?
什么
他们的确意味着"这不受支持".未实现附加到从其他数据上下文获取的对象.
这个问题有很多解决方法,推荐的方法是序列化对象,但这并不容易,也不是一个干净的方法.
我发现最简单的方法是使用readonly DataContext来获取这样的对象:
MyDataContext dataContext = new MyDataContext()
{
DeferredLoadingEnabled = false,
ObjectTrackingEnabled = false
};
Run Code Online (Sandbox Code Playgroud)
从此上下文获取的对象可以附加到另一个上下文,但仅适用于某些场景.
归档时间: |
|
查看次数: |
6412 次 |
最近记录: |