AllReady.Extensions.ContextExtensions.AddOrUpdate C# (CSharp) Метод

AddOrUpdate() публичный статический Метод

Handles correctly attaching an object to the context for cases where it may be new or modified.
public static AddOrUpdate ( this ctx, object entity ) : void
ctx this
entity object
Результат void
        public static void AddOrUpdate(this DbContext ctx, object entity)
        {
            var entry = ctx.Entry(entity);

            switch (entry.State)
            {
                case EntityState.Detached:
                    ctx.Add(entity);
                    break;
                case EntityState.Modified:
                    ctx.Update(entity);
                    break;
                case EntityState.Added:
                    ctx.Add(entity);
                    break;
                case EntityState.Unchanged:
                    //item already in db no need to do anyth
                    break;
                    
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
    }
ContextExtensions