2011-12-15 34 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)