使用EF框架的增删改查和分页的公共类
来源:互联网 发布:数据库开发与管理 编辑:程序博客网 时间:2024/06/03 14:26
public class BaseRepository<T> where T : class
{
//实例化EF框架
DataModelContainer db = new DataModelContainer();
//添加
public T AddEntities(T entity)
{
db.Entry<T>(entity).State = EntityState.Added;
db.SaveChanges();
return entity;
}
//修改
public bool UpdateEntities(T entity)
{
db.Set<T>().Attach(entity);
db.Entry<T>(entity).State = EntityState.Modified;
return db.SaveChanges() > 0;
}
//删除
public bool DeleteEntities(T entity)
{
db.Set<T>().Attach(entity);
db.Entry<T>(entity).State = EntityState.Deleted;
return db.SaveChanges() > 0;
}
//查询
public IQueryable<T> LoadEntities(Func<T, bool> wherelambda)
{
return db.Set<T>().Where<T>(wherelambda).AsQueryable();
}
//分页
public IQueryable<T> LoadPagerEntities<S>(int pageSize, int pageIndex, out int total,
Func<T, bool> whereLambda, bool isAsc, Func<T, S> orderByLambda)
{
var tempData = db.Set<T>().Where<T>(whereLambda);
total = tempData.Count();
//排序获取当前页的数据
if (isAsc)
{
tempData = tempData.OrderBy<T, S>(orderByLambda).
Skip<T>(pageSize * (pageIndex - 1)).
Take<T>(pageSize).AsQueryable();
}
else
{
tempData = tempData.OrderByDescending<T, S>(orderByLambda).
Skip<T>(pageSize * (pageIndex - 1)).
Take<T>(pageSize).AsQueryable();
}
return tempData.AsQueryable();
}
}
{
//实例化EF框架
DataModelContainer db = new DataModelContainer();
//添加
public T AddEntities(T entity)
{
db.Entry<T>(entity).State = EntityState.Added;
db.SaveChanges();
return entity;
}
//修改
public bool UpdateEntities(T entity)
{
db.Set<T>().Attach(entity);
db.Entry<T>(entity).State = EntityState.Modified;
return db.SaveChanges() > 0;
}
//删除
public bool DeleteEntities(T entity)
{
db.Set<T>().Attach(entity);
db.Entry<T>(entity).State = EntityState.Deleted;
return db.SaveChanges() > 0;
}
//查询
public IQueryable<T> LoadEntities(Func<T, bool> wherelambda)
{
return db.Set<T>().Where<T>(wherelambda).AsQueryable();
}
//分页
public IQueryable<T> LoadPagerEntities<S>(int pageSize, int pageIndex, out int total,
Func<T, bool> whereLambda, bool isAsc, Func<T, S> orderByLambda)
{
var tempData = db.Set<T>().Where<T>(whereLambda);
total = tempData.Count();
//排序获取当前页的数据
if (isAsc)
{
tempData = tempData.OrderBy<T, S>(orderByLambda).
Skip<T>(pageSize * (pageIndex - 1)).
Take<T>(pageSize).AsQueryable();
}
else
{
tempData = tempData.OrderByDescending<T, S>(orderByLambda).
Skip<T>(pageSize * (pageIndex - 1)).
Take<T>(pageSize).AsQueryable();
}
return tempData.AsQueryable();
}
}
0 0
- 使用EF框架的增删改查和分页的公共类
- 使用EF框架的增删改查和分页的公共类
- 使用EF框架的增删改查和分页的公共类
- 使用EF框架的增删改查和分页的公共类
- VS2012里面使用EF框架的增删改查和分页的方法
- VS2012里面使用EF框架的增删改查和分页的方法
- EF的增删改查
- EF 的增删改查
- 使用EF框架实现MVC的增删改查功能!!!Entity Framework
- EF总结--模型创建和数据的增删改查
- EF简单的增删查改
- EF简单的增删查改
- EF增删改查的优化
- MCV |--------- EF的增删查改-------
- EF最基本的增删改查
- EF实体类的增删改查操作
- EF通用增删改查分页帮助类
- ado.net EF 增删改查、分页
- POJ 1088 滑雪(记忆化搜索)
- 【刷题之路】二叉树遍历
- 7.【动态内存分配】
- mysql入门笔记2
- 关于android 4.4以上版本从相册选取图片加载不了图片的问题
- 使用EF框架的增删改查和分页的公共类
- Java中包含继承关系时对象的创建与销毁顺序详解(附源码)
- Android Camera API2.0下全新的Camera FW/HAL架构简述
- c/c++函数返回局部变量数组
- hdu 1698
- python 正则表达式注意事项和re.match()和re.search()区别
- MySQL学习系列(1) -- MySQL数据库的介绍和快速安装
- ajax下载文件
- setResult(RESULT_OK, intent)回调不执行问题