2010-04-19 46 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