//public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); //public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); /// <summary> /// 更新 /// </summary> /// <param name="entity"></param> /// <returns></returns> public void Update(TEntity entity) { try { var entry = EF.Entry(entity); EF.Set <TEntity>().Attach(entity); entry.State = EntityState.Modified; } catch (OptimisticConcurrencyException ex) { throw ex; } }
//public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); //public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); /// <summary> /// 更新 /// </summary> /// <param name="entity"></param> /// <returns></returns> public int Update(TEntity entities) { if (EF == null) { throw new ArgumentNullException("dbContext"); } if (entities == null) { throw new ArgumentNullException("entities"); } DbSet <TEntity> dbSet = EF.Set <TEntity>(); try { System.Data.Entity.Infrastructure.DbEntityEntry <TEntity> entry = EF.Entry(entities); if (entry.State == EntityState.Detached) { dbSet.Attach(entities); entry.State = EntityState.Modified; } } catch (InvalidOperationException) { TEntity oldEntity = dbSet.Find(entities.ID); EF.Entry(oldEntity).CurrentValues.SetValues(entities); } return(SaveChanges()); }
/// <summary> /// 更新 /// </summary> /// <param name="entity"></param> /// <returns></returns> public int Update <TEntity1>(TEntity1 entities) where TEntity1 : class { if (EF == null) { throw new ArgumentNullException("dbContext"); } if (entities == null) { throw new ArgumentNullException("entities"); } DbSet <TEntity1> dbSet = EF.Set <TEntity1>(); try { System.Data.Entity.Infrastructure.DbEntityEntry <TEntity1> entry = EF.Entry(entities); if (entry.State == EntityState.Detached) { dbSet.Attach(entities); entry.State = EntityState.Modified; } } catch (InvalidOperationException e) { if (typeof(TEntity1).GetProperties().Where(p => p.Name == "ID").Any()) { dynamic dymodel = entities; TEntity1 oldEntity = dbSet.Find(dymodel.ID); EF.Entry(oldEntity).CurrentValues.SetValues(entities); } else { throw e; } } return(SaveChanges()); }