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

知る方法の 1 つはNo exception was throwです。

確認する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 に答える