查找LINQ SQL的更新是否成功

本文关键字:是否 成功 更新 LINQ SQL 查找 | 更新日期: 2023-09-27 17:53:16

我从教程中找到了这段代码:

Product bev1 = beverages.ElementAtOrDefault(10);
if (bev1 != null)
{
    Console.WriteLine("The price of {0} is {1}. Update to 20.0", 
                      bev1.ProductName, bev1.UnitPrice);
    bev1.UnitPrice = (decimal)20.0;
}
// submit the change to database
db.SubmitChanges();

我们如何知道更新是否成功?

查找LINQ SQL的更新是否成功

一种知道没有抛出异常的方法

第二种方法确保使用GetChangeSet方法来获取数据上下文所跟踪的修改对象。

表单示例msdn

Northwnd db = new Northwnd(@"c:'northwnd.mdf");
var custQuery =
    from cust in db.Customers
    where cust.City == "London" 
    select cust;
foreach (Customer custObj in custQuery)
{
    Console.WriteLine("CustomerID: {0}", custObj.CustomerID);
    Console.WriteLine("'tOriginal value: {0}", custObj.City);
    custObj.City = "Paris";
    Console.WriteLine("'tUpdated value: {0}", custObj.City);
}
//get object modified 
ChangeSet cs = db.GetChangeSet();
Console.Write("Total changes: {0}", cs);
// Freeze the console window.
Console.ReadLine();
db.SubmitChanges();

如果更新不成功,将抛出异常。如果没有抛出异常,则表示成功。

这取决于你对"成功"的定义。如果成功的意思是"没有发生错误",那么没有异常将告诉您这一点。如果您的意思是"数据库中的数据如我预期的那样更新了",那么您需要离线查询数据库或创建另一个上下文并通过它运行查询来验证发生的更改。

您可以编写不生成异常的代码,但不会按照您期望的方式更新数据库。