C# 使用Linq更新记录

C# 使用Linq更新记录,c#,asp.net,sql,database,linq,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表中的nam

我有一个关于Linq和更新数据库中记录的问题。当您使用的字段未知时,我不知道如何更新记录。我很难解释这一点,因此我使用以下示例:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
c.Name = "New Name";
dataBase.SaveChanges();
在本例中,您将更新数据库中Customers表中的name字段。假设客户有一个ID、一个姓名和一个电话号码。在本例中,您将只更新数据库中的名称。如果我想更新电话号码,我只需添加c.Phonenumber=01234;它还将更新电话号码


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

您的
ObjectContext
将为您跟踪更改。这样做是因为您的所有实体(例如,
Customer
)都将继承
EntityObject
INotifyPropertyChanged

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


这意味着您不需要跟踪更改—EF会为您这样做。

您使用EF吗?使用代码优先还是模型优先?一般的想法是分配实体的所有属性,LINQ提供程序应该确定实际更改的内容和未更改的内容。唯一需要考虑的是决定是否调用
SaveChanges
。是的,我使用的是实体框架。我首先添加了模型。好的,谢谢。我将运行一些测试,并通过编辑我的第一篇帖子让你们知道。然后,接受我的答案可能有点早:)我想补充一点,你们应该尝试将对象数据绑定到他们的控件(例如文本框等)