2009-08-18 14 views
1

Ich schreibe einen Windows-Dienst, der eine XML-Datei in eine SQLite-Datenbank importiert.SubSonic 2.x Stapelabfrage SQLite

Es gibt 3000 ungerade Datensätze, die erstellt werden müssen, und ich verwende SubSonic 2.2 für das Projekt.

Anstatt eine Liste durchzuschleifen und sie der Datenbank einzeln hinzuzufügen, gibt es eine Möglichkeit, mehr als einen neuen Datensatz auf einmal abzufragen.

Ich weiß, das "BatchQuery" -Objekt in 3.x würde mir hier helfen, aber ich hatte gehofft, dass es etwas in 2.x gab, das eine ähnliche Aufgabe erfüllte.

Dank im Voraus Doug

Antwort

5

SubSonic 2.x eine Methode hat Batch auszuführen spart. Hier

ist ein Beispiel:

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

bedeutet dies eine Datenbank Anruf? – Doug

+0

Es macht tatsächlich einen Datenbankaufruf. Check out Zeilen 98 bis 109 der SubSonic [Quelle] (http://www.koders.com/csharp/fidD7B3D21941459E52F4672CEBD784AA5A32F1E48D.aspx?s=datatable) – dcharles

+0

Liebe deine Arbeit marve - nach dem hässlichen Weg für den Nachweis des Konzepts (Es dauerte 10 Minuten, um abzuschließen) - das ist großartig, so wie ich es wollte - 2 Sekunden zu vervollständigen. – Doug