2011-12-15 37 views
0

我有一个IEnumerable,我愿做一个批量插入(240,000+记录)。我已经仔细阅读论坛和SO,我一直没能拿出一些作品......批量插入到不同的供应商亚音速2.2

另外美中不足的是,我需要能够指定一个不同的供应商,因为这些记录需要要被插入到具有不同的连接字符串的数据库。

基本上是这样的:

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功能的适当的集合,我也不会知道浩写要更改供应商。

回答

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)