更新L2S和L2E中的记录

时间:2010-04-16 13:47:28

标签: c# linq linq-to-entities

我在L2S中被告知,更新和插入的代码是相同的,

db.InsertOnSubmit(row); 
db.SubmitChanges();

并且L2S将检查它是否为插入或更新,并在后台适当地执行。

这是真的吗?

L2E怎么样?我测试过,在L2E中看起来不像那样。也许我做错了什么。

1 个答案:

答案 0 :(得分:1)

在LINQ to SQL中

InsertOnSubmit() 

'将处于挂起插入状态的实体添加到此表。'

尽管

SubmitChanges() 

'计算要插入,更新或删除的修改对象集,并执行相应的命令以实现对数据库的更改。'

因此Linq to SQL会跟踪您的更改,然后使用SubmitChanges创建必要的事务,这些事务会将更改提交到您的数据库。

LINQ to Entites使用

SaveChanges()

因为Linq to Entites中的对象没有对数据库中的记录使用锁定,因此需要保存而不是提交更改。

此堆栈溢出question中的L2S和L2E之间存在全面的差异列表。