使用亚音速2.2批量插入到不同的提供者

时间:2011-12-15 15:58:18

标签: batch-processing subsonic2.2

我有一个IEnumerable,我想做一个批量插入(240,000+记录)。我一直在浏览论坛,所以我无法想出一些有用的东西......

另一个问题是我需要能够指定不同的提供者,因为这些记录需要插入到具有不同连接字符串的数据库中。

基本上是这样的:

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

(以及其他几个)但是无法使它们工作......上面的代码不起作用,因为我找不到具有.BatchSave函数的亚音的适当集合,并且我也不知道如何更改提供者。

1 个答案:

答案 0 :(得分:0)

原来我不需要这个,但我能够使用命令让它工作:

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)