我在数据库中有一个表,我正在使用LINQ to SQL检索,作为我的处理的一部分,我想添加到此列表,然后使用新项目更新数据库+我所做的任何更改.
我以为我能做的就是:
var list = (from item in db.Table select item).ToList(); [do processing where I modify items & add to the list] list = list.Distinct(); db.SubmitChanges();
发生的变化是修改发生(即SQL更新),但我添加到列表中的任何新项目都没有添加.
显然我做错了,修改和添加到DB实体列表的正确方法是什么,然后提交所有更新和插入?
名单毫无意义.它只是容纳DataContext知道的对象.我们需要确保DataContext知道新的.重要的是,当我们向它们发出DataContext警报时,它们不必完整:
Item item; if (needNewOne) { item = new Item(); db.InsertOnSubmit(item); } else { item = list[i]; } /// build new or modify existing item /// : db.SubmitChanges();