EntityFrameworkCore 扩展类 AddOrUpdate

现在项目用了前后端分离,所以每次提供接口的时候都是

Edit一个api接口,然后Add一个api接口,

然后做了一个后端项目突然想起来EF之前好像有个扩展类 AddOrUpdate,

于是网上找了下:代码如下

 1 public static class ContextExtensions  
 2 {  
 3     public static void AddOrUpdate(this DbContext ctx, object entity)  
 4     {  
 5         var entry = ctx.Entry(entity);  
 6         switch (entry.State)  
 7         {  
 8             case EntityState.Detached:  
 9                 ctx.Add(entity);  
10                 break;  
11             case EntityState.Modified:  
12                 ctx.Update(entity);  
13                 break;  
14             case EntityState.Added:  
15                 ctx.Add(entity);  
16                 break;  
17             case EntityState.Unchanged:  
18                 //item already in db no need to do anything  
19                 break;
20 
21             default:  
22                 throw new ArgumentOutOfRangeException();  
23         }  
24     }  
25 }  

 

参考:

https://www.michaelgmccarthy.com/2016/08/24/entity-framework-addorupdate-is-a-destructive-operation/

https://docs.microsoft.com/zh-cn/ef/ef6/saving/change-tracking/entity-state

 

转载于:https://www.cnblogs.com/MarkSun3/p/9496683.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>