我的查询类似于msdn site上的查询:
// Query the database for the row to be updated.
var query =
from ord in db.Orders
where ord.OrderID == 11000
select ord;
// Execute the query, and change the column values
// you want to change.
foreach (Order ord in query)
{
ord.ShipName = "Mariner";
ord.ShipVia = 2;
// Insert any additional changes to column values.
}
// Submit the changes to the database.
try
{
db.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
}
我现在想要的是一种了解上次更新命令的受影响行的方法。我尝试过使用:
int affectedRows = dc.GetChangeSet().Updates.Count;
以各种方式,但是这条指令总是让我0,即使表格被正确更新。
答案 0 :(得分:2)
dc.GetChangeSet()
告诉您在调用SubmitChanges()
时,LINQ to SQL上下文计划进行多少次更改。它不跟踪数据库报告的受影响行数。
如果在致电int affectedRows = dc.GetChangeSet().Updates.Count;
之前致电SubmitChanges
,您会看到预计会影响多少行。致电SubmitChanges
后,没有更多待处理的更改,因此您将始终获得零计数。