猿问

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

是否有人对使用实体框架实现“如果存在更新行,否则插入行”逻辑的最有效方式提出建议?



拉风的咖菲猫
浏览 347回答 3
3回答

ABOUTYOU

调用时会发生魔术,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的答案。
随时随地看视频慕课网APP
我要回答