/// <summary> /// Initialize a new instance of Repository<T/> /// </summary> public Repository(VMSContext dataContext) { //DataContext = new SGHSolutionContext(); DataContext = dataContext; // Gets the DbSet of the specific type, so information stored in database for // that entity can be retrieve. _dbSet = DataContext.Set <T>(); }
/// <summary> /// Saves data to database /// </summary> public virtual void Update(T entity, bool isDeleted = false) { if (entity == null) { throw new ArgumentException("Cannot add a null entity."); } var entry = DataContext.Entry <T>(entity); if (entry.State == EntityState.Detached || entry.State == EntityState.Modified) { object pkey; if (entity.GetType().GetProperty("Id") != null) { pkey = entity.GetType().GetProperty("Id").GetValue(entity); } else { pkey = entity.GetType().GetProperty("ID").GetValue(entity); } var set = DataContext.Set <T>(); T attachedEntity = _dbSet.Find(pkey); // You need to have access to key if (attachedEntity != null) { var attachedEntry = DataContext.Entry(attachedEntity); attachedEntry.CurrentValues.SetValues(entity); } else { entry.State = EntityState.Modified; // This should attach entity } //DataContext.SaveChanges(); } }