2010-04-19 49 views
0

有沒有辦法使用Entities和LinQ編寫相同的SQL原子指令?如果存在UPDATE-else-INSERT與Linq-to-Entities?

IF EXISTS(SELECT FROM MyTable的WHERE ID = @Id *) UPDATE MyTable的SET NAME = @name ELSE INSERT INTO MyTable的(@Id,@name)

還是需要調用存儲來自EF內部的程序?

回答

0

實體框架跟蹤對象的壽命:

  • 如果對象是從查詢初始化,該框架能夠理解的記錄應該存在於數據庫中,並且將執行UPDATE推時更改回數據庫。
  • 如果對象已在代碼中初始化,則框架將其理解爲「新」對象,並在將更改推送到數據庫時執行INSERT

如果你想有一個單件SQL叫,無論是否需要INSERTUPDATE操作,您必須指定一個存儲過程。

+0

非常感謝你! – daniela 2010-04-19 10:38:07