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

实体框架核心——“如果不存在则插入”可能吗?

实体框架核心——“如果不存在则插入”可能吗?

C#
狐的传说 2022-10-23 16:21:28
我目前正在努力解决一个简单的 SQL 问题,我似乎无法用“纯”Entity Framework Core 2.2 解决这个问题。如何在不执行以下操作的情况下检查插入过程中是否已经存在实体?var entity = await _repository.Get(message.Id);if(entity == null){    entity = new Entity ();    // do something with the entity    await _repository.AddAsync(entity);}else{    // do something with the entity    await _repository.Update(entity);}await _repository.SaveChangesAsync();这还不够安全。我经常遇到主键违规。我的服务在多个实例上运行,并且我在短时间内收到具有相同主键的消息。有没有更好更安全的方法来检查实体框架核心中是否已经存在而无需自己编写 SQL?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

目前,EF Core 本身不支持 Upsert(在此处打开 GitHub 问题:https ://github.com/aspnet/EntityFrameworkCore/issues/4526#issuecomment-366818031 )

可以在此处找到扩展 EF Core 以支持此功能的开源库:https ://github.com/artiomchi/FlexLabs.Upsert


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号