如何将sql中的单个对象更新为linq

时间:2010-03-30 10:33:32

标签: c# linq linq-to-sql linq-to-entities

例如

a = datacontext.customers.FirstOrDefaul();
b = datacontext.customers.Skip(1).FirstOrDefaul();

a.name="name1";
b.Name="name2";

当我调用datacontext.SubmitChanges()时,更新了两个对象。我不想要这个。

我只需要更新a对象。怎么做?

修改

WPFWindow windowA=new WPFWINDOW()
windowA.DataContext=a;
windowA.Show();

WPFWindow windowB=new WPFWINDOW()
windowB.DataContext=b;
windowB.Show();

从窗口单击保存按钮时,保存相应的对象。
单击取消按钮时,相应的对象未保存

3 个答案:

答案 0 :(得分:2)

您需要使用单独的DataContext。

答案 1 :(得分:0)

如果您不想将更改保存到b,那么为什么要指定b.name =“name2”。使用临时变量来存储“name2”。稍后,如果需要,可以将其分配给b.name

答案 2 :(得分:0)

我的理解是,DataContext的目的是封装一组要一起提交的更改。如果要将某些更改分开,请创建另一个DataContext实例。我相信,DataContexts旨在实现轻量级,并且可以快速创建和发布。在我创建的应用程序中,它大量使用LINQ to SQL,我为每个窗口创建一个单独的DataContext。不要在整个应用程序中使用共享数据上下文。它不像数据库连接。这就是数据库连接是一个单独的对象的原因。