2009-08-18 10 views
1

XMLファイルをSQLiteデータベースにインポートするWindowsサービスを作成しています。SubSonic 2.xバッチクエリSQLite

作成する必要があり、プロジェクト用にSubSonic 2.2を使用している奇数レコードが3,000件あります。

リストをループして1つずつデータベースに追加するのではなく、一度に1つ以上の新しいレコードをバッチクエリする方法があります。

私は3.xの "BatchQuery"オブジェクトがここで私を助けてくれることを知っていますが、私は同じような仕事をした2.xのものがあることを期待していました。事前 で

おかげでダグ

答えて

5

亜音速2.xでは、バッチセーブを実行するためのメソッドを持っています。ここで

はサンプルです:

var itemsToSaveCollection = new ItemCollection(); // Your collection type here 

foreach (var xmlItem in xmlItems) 
{ 
    var item = new Item(); // Your data model type here 
    // Set item values from xml 
    itemsToSaveCollection.Add(item); 
} 

itemsToSaveCollection.BatchSave(); 
+0

これは、1つのデータベース呼び出しを行うのですか? – Doug

+0

実際には1つのデータベース呼び出しを行います。 SubSonic [source]の98〜109行目をチェックしてください。(http://www.koders.com/csharp/fidD7B3D21941459E52F4672CEBD784AA5A32F1E48D.aspx?s=datatable) – dcharles

+0

あなたの仕事は大好きです。コンセプトの証明のために醜い方法をした後(完了までに10分かかりました) - これは完成した2秒ということでした。 – Doug