EFHelper用于非Web场景
public static class EFHelper
{
//新增一条数据
public static int Add<T>(T model) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
db.Set<T>().Add(model);
return db.SaveChanges();
}
}
//修改一条数据
public static void Modify<T>(T model) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
if (db.Entry<T>(model).State == EntityState.Detached)
{
db.Set<T>().Attach(model);
db.Entry<T>(model).State = EntityState.Modified;
}
db.SaveChanges();
}
}
//删除一条数据
public static void Delete<T>(T model) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
db.Set<T>().Attach(model);
db.Set<T>().Remove(model);
db.SaveChanges();
}
}
//按条件删除
public static void DeleteList<T>(Expression<Func<T, bool>> express) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
//2.1.1 查询要删除的数据
List<T> listDeleting = db.Set<T>().Where(express).ToList();
//2.1.2 将要删除的数据 用删除方法添加到 EF 容器中
listDeleting.ForEach(u =>
{
db.Set<T>().Attach(u); //先附加到EF 容器
db.Set<T>().Remove(u); //标识为删除状态
});
//2.1.3 一次性生成sql语句 到数据库执行删除
db.SaveChanges();
}
}
//条件查单个实体
public static T GetEntity<T>(Expression<Func<T, bool>> express) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
return db.Set<T>().SingleOrDefault(express);
}
}
//所有数据
public static List<T> GetEntityList<T>() where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
return db.Set<T>().ToList();
}
}
//条件查询
public static List<T> GetEntityList<T>(Expression<Func<T, bool>> express) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
return db.Set<T>().Where(express).ToList();
}
}
//分页列表
public static List<T> GetPagedList<T, TKey>(int pageSize, int pageIndex, out int rowCount, Expression<Func<T, bool>> whereLambda, Expression<Func<T, TKey>> orderByLambda, bool isAsc = true) where T : class
{
using (EFDemo001Entities db = new EFDemo001Entities())
{
rowCount = db.Set<T>().Where(whereLambda).Count();
if (isAsc)
{
return db.Set<T>().OrderBy(orderByLambda).Where(whereLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
}
else
{
return db.Set<T>().OrderByDescending(orderByLambda).Where(whereLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
}
}
}
}
----------------------------------------------------------------测试数据-------------------------------------------------------------------------
static void Main(string[] args)
{
//Add
UserInfo u = new UserInfo();
u.Name = "山楂";
u.Score = 98;
EFHelper.Add<UserInfo>(u);
// u = new UserInfo();
//u.Name = "石榴";
//EFHelper.Add<UserInfo>(u);
//Modify
//u.Id = 5;
//EFHelper.Modify<UserInfo>(u);
//EFHelper.Delete<UserInfo>(u);
//EFHelper.DeleteList<UserInfo>(p => p.Money == 20);
//UserInfo u = EFHelper.GetEntity<UserInfo>(p => p.Id == 7);
//var data = EFHelper.GetEntityList<UserInfo>(p => p.Id > 7);
//var data = EFHelper.GetEntityList<UserInfo>();
//foreach (UserInfo u in data)
//{
// Console.WriteLine(u.Name);
//}
//int count = 0;
//var data = EFHelper.GetPagedList<UserInfo, int>(5, 2, out count, p => p.Id >= 0, p => p.Id, false);
Console.WriteLine("ok");
Console.ReadKey();
}

浙公网安备 33010602011771号