public void Save <TEntity>(Expression <Func <TEntity, object> > primaryKeyExpression, params TEntity[] entities) where TEntity : class { WorklogDBEntities context = this._entities; DbSet <TEntity> dbSet = this.GetDbSet <TEntity>(); DbContextTransaction transaction = context.Database.BeginTransaction(); try { for (int index = 0; index < entities.Count(); index++) { TEntity entity = entities[index]; //UTCDateTimeKindAttribute.Apply(entity); dbSet.AddOrUpdate(primaryKeyExpression, entity); } context.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } }
public EFRepository() { this._entities = new WorklogDBEntities(); //Hook UTC resolver //((IObjectContextAdapter)this._entities).ObjectContext.ObjectMaterialized += // (sender, e) => UTCDateTimeKindAttribute.Apply(e.Entity); }