1

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

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();

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

4

3 回答 3

2

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

于 2013-01-15T19:03:30.407 回答
2

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

第二种确保方法是使用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();
于 2013-01-15T19:06:35.833 回答
0

这取决于您所说的“成功”是什么意思。如果成功的意思是“没有发生错误”,那么缺少异常会告诉您这一点。如果您的意思是“按照我的预期在数据库中更新了数据”,那么您需要离线查询数据库或创建另一个上下文并通过它运行查询以验证更改是否发生。

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

于 2013-01-15T19:06:52.040 回答