我在L2S中被告知,更新和插入的代码是相同的,
db.InsertOnSubmit(row);
db.SubmitChanges();
并且L2S将检查它是否为插入或更新,并在后台适当地执行。
这是真的吗?
L2E怎么样?我测试过,在L2E中看起来不像那样。也许我做错了什么。
答案 0 :(得分:1)
在LINQ to SQL中
InsertOnSubmit()
'将处于挂起插入状态的实体添加到此表。'
尽管
SubmitChanges()
'计算要插入,更新或删除的修改对象集,并执行相应的命令以实现对数据库的更改。'
因此Linq to SQL会跟踪您的更改,然后使用SubmitChanges创建必要的事务,这些事务会将更改提交到您的数据库。
LINQ to Entites使用
SaveChanges()
因为Linq to Entites中的对象没有对数据库中的记录使用锁定,因此需要保存而不是提交更改。
此堆栈溢出question中的L2S和L2E之间存在全面的差异列表。