EFBaseDal
public class BaseDal<T> where T : class, new()
{
DataModelContainer db = new DataModelContainer();
/// <summary>
/// 条件查询
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public IQueryable<T> GetEntities(Expression<Func<T, bool>> where)
{
return db.Set<T>().Where(where).AsQueryable();
}
/// <summary>
/// 分页查询
/// </summary>
/// <typeparam name="S"></typeparam>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="count"></param>
/// <param name="where"></param>
/// <param name="orderBy"></param>
/// <param name="isAsc"></param>
/// <returns></returns>
public IQueryable<T> GetPageEntities<S>(int pageSize, int pageIndex, out int count, Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
{
count = db.Set<T>().Where(where).Count();
if (isAsc)
{
var temp = db.Set<T>().Where(where).OrderBy<T, S>(orderBy).Skip(pageSize).Take(pageSize * (pageIndex - 1)).AsQueryable();
return temp;
}
else
{
var temp = db.Set<T>().Where(where).OrderByDescending<T, S>(orderBy).Skip(pageSize).Take(pageSize * (pageIndex - 1)).AsQueryable();
return temp;
}
}
/// <summary>
/// 增加
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public T Add(T entity)
{
db.Set<T>().Add(entity);
db.SaveChanges();
return entity;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public bool Update(T entity)
{
db.Entry(entity).State = EntityState.Modified;
return db.SaveChanges() > 0;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public bool Delete(T entity)
{
db.Entry(entity).State = EntityState.Deleted;
return db.SaveChanges() > 0;
}
}
EFBaseDal的更多相关文章
- EFBaseDal新增删除方法
public T Delete(int id ) { var entity = db.Set<T>().Find(id); T t ...
- Log2Net组件代码详解(附开源代码)
上一篇,我们介绍了Log2Net的需求和整体框架,我们接下来介绍我们是如何用代码实现Log2Net组件的功能的. 一.整体介绍 Log2Net组件本身是一个Dll,供其他系统调用. 本部分由以下几部分 ...
随机推荐
- c# 扩展方法奇思妙用集锦
本文转载:http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html 其中本人觉得很经典的:c# 扩展方法奇思妙用基础篇五:Dictio ...
- Memcached笔记——(四)应对高并发攻击【转】
http://snowolf.iteye.com/blog/1677495 近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最 ...
- 使用Socket模拟一个简单的Webservice调用
webservice是对socket的一个封装,让远程调用调用变得更加简单,那么使用socket究竟有多么麻烦呢?来看看. 做一个简单的天气查询: 服务端: public class SocketSe ...
- Android UI 开发
今天主要学习了Android UI开发的几个知识 6大布局 样式和主题→自定义样式.主题 JUnit单元测试 Toast弹窗功能简介 6大布局 RelativeLayout LinearLayout ...
- Windows7服务无法启动的解决
这周六,我接到了一个很诡异的案例,表现为任务栏右下角网络连接图标始终为一个红叉,已排除网卡硬件.链路和网卡驱动的问题.主板都新换了一块,可是问题依旧,这无疑将问题的根源指向了操作系统.本想通过网络疑难 ...
- Linux bash常用测试判断选项
bash编程中if [ ]后面的测试选项: 1.整数测试: -le less equal -lt less than -ge greater equal -gt greater than -eq ...
- ionic 项目分享【转】No.3
写在文章前:由于最近研究ionic框架,深感这块的Demo寥寥可数,而大家又都藏私,堂堂天朝,何时才有百家争鸣之象,开源精神吾辈当仁不让! 原文地址暂时忘记了 ,如果有知道的麻烦在评论处帮忙说一下 , ...
- 页面跳转 url地址的写法
跳转地址:分两类,wikipage和aspx页面: wikipage:当新建webpart,在网站里新建一个wikipage,然后将webpart添加进wikipage,这种情况下跳转页面需要添加si ...
- DataList分页-增加自动编号列
<asp:DataList ID="dl_XUDAXIA" runat="server"> <HeaderTemplate> <t ...
- jquery 移除数组重复的元素----$.unique()
举例说明: var fruits=["apple","banana","pear","orange","ba ...