是否有人对使用实体框架实现“如果存在更新行,否则插入行”逻辑的最有效方式提出建议?
3 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
调用时会发生魔术,SaveChanges()并取决于电流EntityState。如果实体具有EntityState.Added,则将其添加到数据库中;如果实体具有,则将在数据库中EntityState.Modified对其进行更新。因此,您可以实现以下InsertOrUpdate()方法:
public void InsertOrUpdate(Blog blog)
{
using (var context = new BloggingContext())
{
context.Entry(blog).State = blog.BlogId == 0 ?
EntityState.Added :
EntityState.Modified;
context.SaveChanges();
}
}
有关EntityState的更多信息
如果您无法检查Id = 0以确定它是否是新实体,请检查Ladislav Mrnka的答案。
- 3 回答
- 0 关注
- 346 浏览
添加回答
举报
0/150
提交
取消