2011-01-06 5 views
1

WCFサービスを介して更新リストを取得し、DBに書き込むサービスがあります。これらのうちのいくつかは潜在的に失敗する可能性があり(クエリごとに1000個の更新/挿入)、残りの挿入/更新が書き込まれる必要があり、後で処理するためにログに記録されない...いくつかの失敗を許すLINQからSQLへの一括挿入

問題は、これがLINQ to SQLでどのように行われるべきかということです。以下のように現時点では、私が何かをしています:

 TestDataContext dc = new TestDataContext(); 
     Random r = new Random(); 
     for (int i = 0; i < 300; i++) 
     { 
      Table table = new Table { randomNumber = r.Next(150) }; 
      dc.Tables.InsertOnSubmit(table); 
     } 
     try 
     { 
      dc.SubmitChanges(); 

     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 

この例では、Table.randomNumberは主キーです。 dc.SubmitChanges()を呼び出すと、各繰り返しの後にdc.SubmitChanges()を呼び出す代わりに、例外をスローします。これを行うには、より良い方法がありますか?

答えて

0

私はそれぞれの行が書かれたときに提出し、エラーをキャッチしました。この方法では、私は失敗をキャッチすることができますが、残りの部分を正しく挿入します。それは私のように遅くはありませんが、理想的なものではありません。これは、「オフライン」(バックエンド処理)で行われるプロセスなので、必要なものに対して機能します。

関連する問題