使用Linq更新记录

时间:2013-11-18 10:11:59

标签: c# asp.net sql database linq

我对Linq有疑问并更新了数据库中的记录。当您使用的字段未知时,我不知道如何更新记录。我很难解释这个,所以我使用下面的例子:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
c.Name = "New Name";
dataBase.SaveChanges();

在此示例中,您将更新数据库中Customers表中的名称字段。让我们说客户有一个ID,一个名字和一个电话号码。在示例中,您只会更新数据库中的名称。如果我想更新电话号码,我只需添加c.Phonenumber = 01234;它还会更新电话号码。

现在,用户使用文本框填充新数据,但是,不需要更改所有数据。因此,您可以更新姓名和电话号码,或其中任何一个。我遇到的问题是我不知道如何确定用户填写的内容以及如何确定要选择和更新的字段。如果我有一个包含10个不同字段的customers表,那么用户可能想要更改8个字段,而我不知道如何告诉程序它必须更新这8个字段。我希望你能理解我的解释,并能帮助我。提前致谢。

1 个答案:

答案 0 :(得分:2)

您的ObjectContext会跟踪您的变化。这样做是因为您的所有实体(例如Customer)都将继承EntityObjectINotifyPropertyChanged

调用SaveChanges将在事务中保留对数据库的所有更改。

这意味着您无需跟踪更改 - EF会为您执行此操作。