using AppData; using AppModels.Enum; using AppModels.result.Base; using AppData; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace AppData { /// <summary> /// 增删改查 /// </summary> /// <typeparam name="T"></typeparam> public class CURD<T> where T : class { /// <summary> /// 数据库 /// </summary> private AppDataEntities db = new AppDataEntities(); /// <summary> /// 创建 /// </summary> /// <param name="value"></param> /// <returns></returns> public ResultT<T> Create(T value) { DbSet<T> dbSet = db.Set<T>(); dbSet.Add(value); var r = db.SaveChanges(); return new ResultT<T> { State = r == 1 ? PayState.SUCCESS : PayState.FAIL, Message = "函数调用成功,结果请参考state", data = value }; } /// <summary> /// 删除 /// </summary> /// <param name="value"></param> /// <returns></returns>y public ResultT<T> Delete(T value) { throw new NotImplementedException(); } /// <summary> /// 查询 /// </summary> /// <param name="value"></param> /// <returns></returns> public ResultT<List<T>> Query(Expression<Func<T, bool>> predicate) { DbSet<T> dbSet = db.Set<T>(); var entity = dbSet.Where(predicate);// db.T.Where(predicate); if (entity.Any() == false) { return new ResultT<List<T>> { Message = "没有找到对应的数据", State = PayState.FAIL }; } return new ResultT<List<T>> { State = PayState.SUCCESS, data = entity.ToList(), Message = "查询成功" }; } /// <summary> /// 更新数据 /// </summary> /// <param name="value"></param> /// <returns></returns> public ResultT<T> Update(T value) { var dbEntityEntry = db.Entry(value); var notUpdateColumns = new List<string> { "Id", "CreateTime", "CreateUserId", "CompanyId" }; foreach (var rawProperty in dbEntityEntry.Entity.GetType().GetTypeInfo().DeclaredProperties) { if (!notUpdateColumns.Contains(rawProperty.Name)) { dbEntityEntry.Property(rawProperty.Name).IsModified = true; } } var r = db.SaveChanges(); return new ResultT<T> { State = r == 1 ? PayState.SUCCESS : PayState.FAIL, Message = "函数调用成功,结果请参考state", data = value }; } } }