为了账号安全,请及时绑定邮箱和手机立即绑定

如果存在使用实体框架的其他插入逻辑,则更新行

如果存在使用实体框架的其他插入逻辑,则更新行

C#
拉风的咖菲猫 2019-10-15 09:34:04
是否有人对使用实体框架实现“如果存在更新行,否则插入行”逻辑的最有效方式提出建议?
查看完整描述

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的答案。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 332 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信