1. 程式人生 > >EntityFrameworkCore 擴展類 AddOrUpdate

EntityFrameworkCore 擴展類 AddOrUpdate

bsp spa style throw update code ase 擴展類 pap

現在項目用了前後端分離,所以每次提供接口的時候都是

Edit一個api接口,然後Add一個papi接口,

然後做了一個後端項目突然想起來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/

EntityFrameworkCore 擴展類 AddOrUpdate