在 linq 中更新单行
本文关键字:单行 更新 linq | 更新日期: 2023-09-27 18:34:37
我正在尝试更新表的单行,特别是使用 linq 使用主键值。
var mytab = new Customer();
mytab.FirstName = mymodel.FirstName;
mytab.LastName = mymodel.LastName;
mytab.CustomerId = mymodel.CustomerId;
db.AddToCustomer(mytab);
db.SaveChanges()
这将添加一个具有新 id 的新行。单步执行代码会显示mymodel
传递了具有我要更新的名字或姓氏的正确值。
mymodel.CustomerId
是我要更新的记录的正确 ID,但 SQL 事件探查器显示我没有更新任何内容。 我需要使用 .第一?
您的代码创建新行。要进行更新,您需要首先从数据库中按 ID 选择您的客户,然后更新:
var mytab = db.Customers.First(g=>g.CustomerId == mymodel.CustomerId);
mytab.FirstName = mymodel.FirstName;
mytab.LastName = mymodel.LastName;
db.SaveChanges();
试试这个:
db.Customer.First(x=> x.CustomerId == mymodel.CustomerId).FirstName = mymodel.FirstName;
db.Customer.First(x=> x.CustomerId == mymodel.CustomerId).LastName = mymodel.LastName;
db.SaveChanges();
或者:(我更喜欢这个!
db.Entry(mymodel).State = EntityState.Modified;
db.SaveChanges();