列表試圖做一個:的Upsert與Simple.Data
var list = new List<MyType>();
list.Add(new MyType() { PK1 = 1, PK2 = 2 });
list.Add(new MyType() { PK1 = 1, PK2 = 3 });
Database.Open().MySchema.MyTable.Upsert(list);
好像沒有什麼改變,我需要做一個foreach或我能做到這一些怎麼樣?
列表試圖做一個:的Upsert與Simple.Data
var list = new List<MyType>();
list.Add(new MyType() { PK1 = 1, PK2 = 2 });
list.Add(new MyType() { PK1 = 1, PK2 = 3 });
Database.Open().MySchema.MyTable.Upsert(list);
好像沒有什麼改變,我需要做一個foreach或我能做到這一些怎麼樣?
這將工作或結果的任何其他枚舉。
Database.Open().MySchema.MyTable.Upsert(list).ToArray();
雖然不會產生一批SQL查詢,會有很多的查詢數據庫,至少在SQL Server中。
Simple.Data 2的標題功能之一是批量操作。 –
是否
Database.Open().MySchema.MyTable.Upsert(new MyType { PK1 = 1, PK2 = 2 });
工作?
ToArray的() -
var list = new List<MyType>();
list.Add(new MyType() { PK1 = 1, PK2 = 2 });
list.Add(new MyType() { PK1 = 1, PK2 = 3 });
Database.Open().MySchema.MyTable.Upsert(list.ToArray());
是的,這可行,但問題的關鍵在於批量處理。一次不是一個。 –
看看文檔。你可以添加一個列表嗎? –
快速查看文檔,嘗試ToArray()。 –
你沒有關閉你的括號與你的對象初始化程序 – Jonesopolis
這應該工作,請參閱https://github.com/markrendle/Simple.Data/blob/master/Simple.Data.SqlTest/UpsertTests.cs#L94來自測試套件的例子。你使用哪個後端數據庫? –
謝謝,閱讀@jakobras答案。需要做一個.ToArray()來執行! –