tnblog
首页
视频
资源
登录

EF Helper封装

4517人阅读 2020/7/18 17:48 总访问:227633 评论:0 收藏:0 手机
分类: 随笔

常用方法封装:

public class DBHelper<T> where T : class
{
    AproSysEntities context = new AproSysEntities();
    /// <summary>
    /// 新增一个实体
    /// </summary>
    /// <param name="entity"></param>
    /// <returns></returns>
    public int Add(T entity)
    {
        context.Entry<T>(entity).State = System.Data.EntityState.Added;
        return context.SaveChanges();
    }
    /// <summary>
    /// 删除一个实体
    /// </summary>
    /// <param name="entity"></param>
    /// <returns></returns>
    public int Remove(T entity)
    {
        context.Entry<T>(entity).State = System.Data.EntityState.Deleted;
        return context.SaveChanges();
    }
    /// <summary>
    /// 修改一个实体
    /// </summary>
    /// <param name="entity"></param>
    /// <returns></returns>
    public int Update(T entity)
    {
        context.Entry<T>(entity).State = System.Data.EntityState.Modified;
        return context.SaveChanges();
    }
    /// <summary>
    /// 批量新增实体
    /// </summary>
    /// <param name="dbContext"></param>
    /// <returns></returns>
    public int AddList(params T[] entities)
    {
        int result = 0;
        for (int i = 0; i < entities.Count(); i++)
        {
            if (entities[i] == null)
                continue;
            context.Entry<T>(entities[i]).State = System.Data.EntityState.Added;
            if (i != 0 && i % 20 == 0)
            {
                result += context.SaveChanges();
            }
        }
        if (entities.Count() > 0)
            result += context.SaveChanges();
        return result;
    }
    /// <summary>
    /// 批量删除实体
    /// </summary>
    /// <param name="where"></param>
    /// <returns></returns>
    public int RemoveList(Expression<Func<T, bool>> where)
    {
        var temp = context.Set<T>().Where(where);
        foreach (var item in temp)
        {
            context.Entry<T>(item).State = System.Data.EntityState.Deleted;
        }
        return context.SaveChanges();
    }
    /// <summary>
    /// 按条件查询
    /// </summary>
    /// <param name="where"></param>
    /// <returns></returns>
    public IQueryable<T> FindList(Expression<Func<T, bool>> where)
    {
        var temp = context.Set<T>().Where(where);
        return temp;
    }
    /// <summary>
    /// 按条件查询,排序
    /// </summary>
    /// <typeparam name="S"><peparam>
    /// <param name="where"></param>
    /// <param name="orderBy"></param>
    /// <param name="isAsc"></param>
    /// <returns></returns>
    public IQueryable<T> FindList<S>(Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
    {

        var list = context.Set<T>().Where(where);
        if (isAsc)
            list = list.OrderBy<T, S>(orderBy);
        else
            list = list.OrderByDescending<T, S>(orderBy);
        return list;
    }
    /// <summary>
    /// 按条件查询,分页
    /// </summary>
    /// <param name="pageIndex"></param>
    /// <param name="pageSize"></param>
    /// <param name="rowCount"></param>
    /// <param name="where"></param>
    /// <returns></returns>
    public IQueryable<T> FindPagedList(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where)
    {
        var list = context.Set<T>().Where(where);
        rowCount = list.Count();
        list = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
        return list;
    }
    /// <summary>
    /// 按条件查询,分页,排序
    /// </summary>
    /// <typeparam name="S"><peparam>
    /// <param name="pageIndex"></param>
    /// <param name="pageSize"></param>
    /// <param name="rowCount"></param>
    /// <param name="where"></param>
    /// <param name="orderBy"></param>
    /// <param name="isAsc"></param>
    /// <returns></returns>
    public IQueryable<T> FindPagedList<S>(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
    {
        var list = context.Set<T>().Where(where);
        rowCount = list.Count();
        if (isAsc)
            list = list.OrderBy<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
        else
            list = list.OrderByDescending<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
        return list;
    }
}


评价
旧年素颜,君记否
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术