2012-01-13 117 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一次被认为比单独提交它们更好。