我有一个新手问题.
我试图更新表的一行,特别是使用linq使用主键值.
var mytab = new Customer();
mytab.FirstName = mymodel.FirstName;
mytab.LastName = mymodel.LastName;
mytab.CustomerId = mymodel.CustomerId;
db.AddToCustomer(mytab);
db.SaveChanges()
Run Code Online (Sandbox Code Playgroud)
这只是添加了一个带有新id的新行.单步调试代码会发现'mymodel'正在传递正确的值,并带有我要更新的名字或姓氏.
mymodel.CustomerId是我要更新的记录的正确ID,但SQL事件探查器显示我没有更新任何内容.我需要使用.First吗?
您的代码创建了新行.要进行更新,您需要先从数据库中选择您的客户ID,然后更新:
var mytab = db.Customers.First(g=>g.CustomerId == mymodel.CustomerId);
mytab.FirstName = mymodel.FirstName;
mytab.LastName = mymodel.LastName;
db.SaveChanges()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4053 次 |
| 最近记录: |