Пакетная вставка в другого провайдера с использованием subsonic 2.2

У меня есть IEnumerable, и я хотел бы сделать пакетную вставку (более 240 000 записей). Я просматривал форумы и SO, и я не смог придумать что-то, что работает...

Другая загвоздка в том, что мне нужно указать другого провайдера, так как эти записи нужно вставлять в базу данных с другой строкой подключения.

В основном, что-то вроде этого:

IEnumerable<MyObject> records = GetRecords();
SubSonicDooHickey.BatchSave(records, "differentSubsonicProvider")

Я знаю, что это не совсем так, но что-то в этом роде...

Я пробовал:

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();

(и несколько других), но не смог заставить их работать... приведенный выше код не работал, потому что я не мог найти подходящую коллекцию из subsonic, в которой была функция .BatchSave, и я также не знал, как сменить провайдера.


person tjans    schedule 15.12.2011    source источник


Ответы (1)


Оказывается, мне это не нужно, но я смог заставить это работать с помощью команды:

var sql = "insert into foo(col1) values('@Param1'),('@Param2')";

var cmd = new QueryCommand(sql, repositoryName);
cmd.AddParameter("@Param1", "value1", DbType.String);
cmd.AddParameter("@Param2", "value2", DbType.String);
DataService.ExecuteQuery(cmd)
person tjans    schedule 19.12.2011