2010-04-16 32 views
0

有人告訴我在L2S,用於更新和插入代碼是相同的,更新的記錄L2S和L2E

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

和L2S會檢查,看它是否是一個插入或更新和approprately行動的背景。

這是真的嗎?

L2E怎麼樣?我測試過,看起來像L2E,它不是那樣的。也許我做錯了什麼。

回答

1

在LINQ到SQL

InsertOnSubmit() 

'處於掛起狀態插入到該表中添加的實體'。

鑑於

SubmitChanges() 

計算該組修改的對象的將被插入,更新或刪除,並執行相應的命令來實現對數據庫的更改」。

因此,Linq to SQL會跟蹤您的更改,然後使用SubmitChanges創建必要的事務,這些事務會將更改提交到數據庫。

LINQ到entites的使用

SaveChanges() 

在LINQ到entites的對象在數據庫中不使用對記錄鎖,因此需要保存,而不是提交的變化。

在這個計算器question中有一個L2S和L2E之間差異的完整列表。