wil*_*lvv 5 sql optimization entity-framework-4 sql-update
我有一个场景,我必须更新一个实体,如果它存在或添加一个新实体,如果它不存在.
我想为此执行一个单独的方法(如果它只是一次访问服务器就会很棒).
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();
Run Code Online (Sandbox Code Playgroud)
但我想避免第一个查询,如下所示:
var entity = new Entity();
entity.Id = myId;
entity.Value = "my modified value";
db.AddOrAttach(entity);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
有类似的东西吗?或者我必须执行第一个查询,不管是什么?
谢谢
不幸的是,无论如何您都必须执行第一个查询。
一种选择是编写一个执行 T-SQL 的存储过程,MERGE
然后将其映射到函数导入,尽管这需要您将实体的标量值作为参数传递(并且将完成对导航属性的支持),但是它会实现你所追求的。
归档时间: |
|
查看次数: |
7130 次 |
最近记录: |