WinRT (Win8) で非同期ベースの Web サービスと非同期フレームワークを使用して、リモートの Ms SQL Server から大きなレコードセット (1000 から 5000) を取得します。
私は知りたいです :
1) SQLite に大きなレコードセットを挿入するための最良の方法はどれですか?
2) 接続エラーが発生した場合、RollBack トランザクションを使用すると最初からやり直しになります。以下のメソッドは何でも挿入し、レコードが完全でない場合は後でデータを更新できます。これは良いアプローチですか?
3)以下のソリューションを強化するためのより良い方法はありますか?
処理するこの foreach ステートメント
Async-Based WebService から返された返された結果の各レコード:
foreach (IList の WebServiceList _List)
{
InsertNewItems(_List.No, _List.Description, _List.Unit_Price, _List.Base_Unit_of_Measure);
}
private void InsertNewItems(string ItemNo, string ItemName, decimal ItemPrice, string ItemBUoM)
{
var existingItem = (db2.Table().Where(c => c.No == ItemNo)).SingleOrDefault();
if (既存のアイテム != null)
{
existingItem.No = ItemNo;
existingItem.Description = アイテム名;
existingItem.Unit_Price = ItemPrice;
existingItem.BaseUnitofMeasure = ItemBUoM;
int 成功 = db2.Update(existingItem);
}
そうしないと
{
int 成功 = db2.Insert(新しいアイテム()
{
いいえ = アイテム番号、
説明 = アイテム名、
Unit_Price = アイテム価格、
Base_Unit_of_Measure = ItemBUoM
});
}
}