public virtual ServiceResult <T> Add(T item) { var result = Validate(item); if (result.HasViolation) { return(result); } var editor = item as EditorEntity; if (editor != null) { if (ApplicationContext.CurrentUser != null) { editor.CreateBy = ApplicationContext.CurrentUser.UserID; editor.CreatebyName = ApplicationContext.CurrentUser.UserName; editor.LastUpdateBy = ApplicationContext.CurrentUser.UserID; editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName; } editor.CreateDate = DateTime.Now; editor.LastUpdateDate = DateTime.Now; } CurrentDbSet.Add(item); DbContext.SaveChanges(); return(result); }
public void Save(T entity) { //TODO: provisório tentar achar uma forma mais eficiente para colocar no contexto, se for uma importação if (entity.Id == 0) { CurrentDbSet.Add(entity); } else { var entry = GetDbContext.ChangeTracker.Entries().FirstOrDefault(x => ((ILGTEntity)x.Entity).Id == entity.Id); if (entry != null) { var concretType = entity.GetType(); var propertysToClone = concretType.GetProperties().Where(x => !x.PropertyType.IsNested && x.CanWrite).ToList(); foreach (var p in propertysToClone) { p.SetValue(entry.Entity, p.GetValue(entity, new object[0]), new object[0]); } } else { GetDbContext.Entry(entity).State = EntityState.Modified; } } this.SaveChanges(); }
public virtual void Add(T item) { var editor = item as EditorEntity; if (editor != null && ApplicationContext.CurrentUser != null) { editor.CreateBy = ApplicationContext.CurrentUser.UserID; editor.CreatebyName = ApplicationContext.CurrentUser.UserName; editor.CreateDate = DateTime.Now; } CurrentDbSet.Add(item); DbContext.SaveChanges(); }
/// <summary> /// Creates new user and Person Record and returns auto-generated UserId /// </summary> /// <param name="newUser">The new user.</param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public int CreateNewUser(User newUser) { var result = -1; var added = CurrentDbSet.Add(newUser); if (!added.IsNull()) { result = CurrentDbContext.SaveChanges(); } return(result); }
public void Add(Model m) { try { CurrentDbSet.Add(m); } catch (Exception ex) { Report.Notify(new RCM.Message(Codes.ERR_DB_INS) { DetailedText = ex.ToString() }); } }
/// <summary> /// 以乐观锁的形式实现添加分组 /// </summary> public async Task <DataResult> AddGoodsCategory(GoodsCategory goodsCategory) { ShopInfoExtensions shopInfoExtensions = await shopInfoExtensionsDbSet.FirstOrDefaultAsync(sh => sh.ShopId == goodsCategory.ShopId); int categoryCount = await CurrentDbSet.CountAsync(gr => gr.ShopId == goodsCategory.ShopId); if (categoryCount >= shopInfoExtensions.LimitCategoryNum) { return new DataResult { Code = DataResultCode.Fail, Message = $"最多只能拥有{shopInfoExtensions.LimitCategoryNum}个商品分组!" } } ; using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted)) { CurrentDbSet.Add(goodsCategory); string sql = $"update ShopInfoExtensions set CategoryDataVersion = @newVersion where shopId = @shopId and CategoryDataVersion = @oldVersion"; int result = this.Database.ExecuteSqlCommand(sql, new[] { new MySqlParameter("newVersion", Guid.NewGuid().ToString("N")), new MySqlParameter("oldVersion", shopInfoExtensions.CategoryDataVersion), new MySqlParameter("shopId", shopInfoExtensions.ShopId), }); if (result <= 0) { transaction.Rollback(); return(new DataResult { Code = DataResultCode.Fail, Message = "添加失败,请重试!" }); } SaveChanges(); transaction.Commit(); } return(new DataResult { Code = DataResultCode.Success, Message = "添加成功!" }); } }
public void Add(TEntity entity) { CurrentDbSet.Add(entity); }
public virtual void Add(T item) { CurrentDbSet.Add(item); DbContext.SaveChanges(); }