if-exists-UPDATE-else-INSERT与Linq-to-Entities?

时间:2010-04-19 10:16:49

标签: sql entity-framework linq-to-entities exists

有没有办法使用Entities和LinQ编写同样的SQL原子指令?

IF EXISTS(SELECT * FROM MyTable WHERE ID = @Id) 更新MyTable SET名称= @name 其他 INSERT INTO MyTable(@ Id,@ name)

或者你需要从EF中调用存储过程吗?

1 个答案:

答案 0 :(得分:0)

实体框架跟踪对象的生命周期:

  • 如果对象是从查询初始化的,则框架会理解数据库中应存在的记录,并在将更改推送回数据库时执行UPDATE
  • 如果对象在代码中初始化,则框架将其理解为“新”对象,并在将更改推送到数据库时执行INSERT

如果您希望调用单个SQL,无论是否需要INSERTUPDATE操作,您都必须指定存储过程。