2012-01-13 120 views
2

我想知道如果我需要不斷地調用的SubmitChanges()當我運行在相同的數據存儲順序刪除/插入語句:LINQ刪除,插入,提交

db.SomeTable.DeleteAllOnSubmit(db.SomeTable.Where(p => p.PartID == part.PartID)); 
db.SubmitChanges(); 

List<SomeTable>  alist = new List<SomeTable>(); 

foreach (GenericLookupE item in part.PublicAssistance) 
{ 
    alist.Add(new SomeTableEntity() { . . . }); 
} 

db.SomeTable.InsertAllOnSubmit(alist); 
db.SubmitChanges(); 

基本上,所有的價值觀我很存儲在這個表格中是複選框結果(一個參與者到多個複選框)。所以我刪除了該參與者表中的所有內容,並創建了一個列表來插入'en-masse'。

不知道我是否清楚說明了這一點。

換個說法,如果我做DeleteAllOnSubmit不調用的SubmitChanges,然後調用InsertAllOnSubmit最後調用的SubmitChanges,它會按預期工作?

謝謝。

+0

你使用Linq-to-Sql嗎? – 2012-01-13 23:04:38

+0

是------------ – horace 2012-01-14 00:11:07

+0

如果您試圖使它成爲事務性的,那麼使用'TransactionScope'。 – 2012-01-14 04:06:57

回答

4

是的,它會正常工作,並且只做一次所有更改和SubmitChanges一次被認爲比單獨提交它們更好。