【发布时间】:2011-06-22 02:56:38
【问题描述】:
我有一个场景,如果实体存在,我必须更新它,如果不存在,我必须添加一个新实体。
我想为此执行一个方法(如果它是一次到服务器的旅行会很棒)。
在 EF 中有类似的东西吗?
现在我的代码如下所示:
var entity = db.Entities.FirstOrDefault(e => e.Id == myId);
if (entity == null)
{
entity = db.Entities.CreateObject();
entity.Id = myId;
}
entity.Value = "my modified value";
db.SaveChanges();
但我想避免第一次查询,像这样:
var entity = new Entity();
entity.Id = myId;
entity.Value = "my modified value";
db.AddOrAttach(entity);
db.SaveChanges();
有没有类似的?还是无论如何我都必须执行第一个查询?
谢谢
【问题讨论】:
-
看看我关于使用 EF 进行通用保存的问题:stackoverflow.com/questions/6018711/… 其结果是编写通用保存方法(根据需要插入或更新)。它很快就会变得一团糟。
标签: sql optimization entity-framework-4 sql-update