tnblog
首页
视频
资源
登录

EF Helper封装

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

常用方法封装:

  1. public class DBHelper<T> where T : class
  2. {
  3.     AproSysEntities context = new AproSysEntities();
  4.     /// <summary>
  5.     /// 新增一个实体
  6.     /// </summary>
  7.     /// <param name="entity"></param>
  8.     /// <returns></returns>
  9.     public int Add(T entity)
  10.     {
  11.         context.Entry<T>(entity).State = System.Data.EntityState.Added;
  12.         return context.SaveChanges();
  13.     }
  14.     /// <summary>
  15.     /// 删除一个实体
  16.     /// </summary>
  17.     /// <param name="entity"></param>
  18.     /// <returns></returns>
  19.     public int Remove(T entity)
  20.     {
  21.         context.Entry<T>(entity).State = System.Data.EntityState.Deleted;
  22.         return context.SaveChanges();
  23.     }
  24.     /// <summary>
  25.     /// 修改一个实体
  26.     /// </summary>
  27.     /// <param name="entity"></param>
  28.     /// <returns></returns>
  29.     public int Update(T entity)
  30.     {
  31.         context.Entry<T>(entity).State = System.Data.EntityState.Modified;
  32.         return context.SaveChanges();
  33.     }
  34.     /// <summary>
  35.     /// 批量新增实体
  36.     /// </summary>
  37.     /// <param name="dbContext"></param>
  38.     /// <returns></returns>
  39.     public int AddList(params T[] entities)
  40.     {
  41.         int result = 0;
  42.         for (int i = 0; i < entities.Count(); i++)
  43.         {
  44.             if (entities[i] == null)
  45.                 continue;
  46.             context.Entry<T>(entities[i]).State = System.Data.EntityState.Added;
  47.             if (i != 0 && i % 20 == 0)
  48.             {
  49.                 result += context.SaveChanges();
  50.             }
  51.         }
  52.         if (entities.Count() > 0)
  53.             result += context.SaveChanges();
  54.         return result;
  55.     }
  56.     /// <summary>
  57.     /// 批量删除实体
  58.     /// </summary>
  59.     /// <param name="where"></param>
  60.     /// <returns></returns>
  61.     public int RemoveList(Expression<Func<T, bool>> where)
  62.     {
  63.         var temp = context.Set<T>().Where(where);
  64.         foreach (var item in temp)
  65.         {
  66.             context.Entry<T>(item).State = System.Data.EntityState.Deleted;
  67.         }
  68.         return context.SaveChanges();
  69.     }
  70.     /// <summary>
  71.     /// 按条件查询
  72.     /// </summary>
  73.     /// <param name="where"></param>
  74.     /// <returns></returns>
  75.     public IQueryable<T> FindList(Expression<Func<T, bool>> where)
  76.     {
  77.         var temp = context.Set<T>().Where(where);
  78.         return temp;
  79.     }
  80.     /// <summary>
  81.     /// 按条件查询,排序
  82.     /// </summary>
  83.     /// <typeparam name="S"><peparam>
  84.     /// <param name="where"></param>
  85.     /// <param name="orderBy"></param>
  86.     /// <param name="isAsc"></param>
  87.     /// <returns></returns>
  88.     public IQueryable<T> FindList<S>(Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
  89.     {
  90.         var list = context.Set<T>().Where(where);
  91.         if (isAsc)
  92.             list = list.OrderBy<T, S>(orderBy);
  93.         else
  94.             list = list.OrderByDescending<T, S>(orderBy);
  95.         return list;
  96.     }
  97.     /// <summary>
  98.     /// 按条件查询,分页
  99.     /// </summary>
  100.     /// <param name="pageIndex"></param>
  101.     /// <param name="pageSize"></param>
  102.     /// <param name="rowCount"></param>
  103.     /// <param name="where"></param>
  104.     /// <returns></returns>
  105.     public IQueryable<T> FindPagedList(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where)
  106.     {
  107.         var list = context.Set<T>().Where(where);
  108.         rowCount = list.Count();
  109.         list = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
  110.         return list;
  111.     }
  112.     /// <summary>
  113.     /// 按条件查询,分页,排序
  114.     /// </summary>
  115.     /// <typeparam name="S"><peparam>
  116.     /// <param name="pageIndex"></param>
  117.     /// <param name="pageSize"></param>
  118.     /// <param name="rowCount"></param>
  119.     /// <param name="where"></param>
  120.     /// <param name="orderBy"></param>
  121.     /// <param name="isAsc"></param>
  122.     /// <returns></returns>
  123.     public IQueryable<T> FindPagedList<S>(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
  124.     {
  125.         var list = context.Set<T>().Where(where);
  126.         rowCount = list.Count();
  127.         if (isAsc)
  128.             list = list.OrderBy<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
  129.         else
  130.             list = list.OrderByDescending<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
  131.         return list;
  132.     }
  133. }


评价

封装调用api接口的通用方法(抱含存调用接口日志)

protectedstaticreadonlylog4net.ILog_log=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod(...

CEF 封装动态表达式树进行查询(一)

希望能带给大家一些想法,碰撞出属于你的火花, EF动态条件查询之前我们先看看原始查询条件类型吧 一般查询是这样的 var Us...

访问数据库的泛型封装

///&lt;summary&gt; ///新增 ///&lt;/summary&gt; ///&lt;typeparamname=&quot;T&quot;&gt;实体类&lt;/typeparam&gt; /...

EF多种更新方法。EF修改,Entity Framework修改。abp vnext ef 更新封装

[TOC] 方法1:直接执行更新的sql语句过于简单不说了 方法2:先查询在更新Users result = oapEntities.Users.Where(a =&gt...

vue使用axios调用接口,解决跨域。vue调用api接口。vue请求封装

一.先下载axios依赖npminstallaxios二.在需要的地方引入importaxiosfrom&#39;axios&#39;三.环境准备好了之后就可以使用axio...

ef core 公共接口封装

show me code: public interface ICommonDAL&lt;T&gt; where T : class, new() { protected EFContex...

基于angular的HttpClient封装_HttpClient

基于angular的HttpClient封装_HttpClient,直接复制源码即可用包含常用的get、post、patch、delete和put请求;import{HttpC...

.NET Core使用ElasticSearch 三:常用帮助类封装

把.NET CORE操作ElasticSearch的常用方法封装成帮助类,包含查询的封装,操作索引相关的封装,删除,更新等等等。基于ES7.1...

获取请求参数并封装对象(手动封装) 4

手动封装方式一、创建web项目,1、续写至: jaWeb 下的请求之获取请求参数 3篇。2、创建实体类,实体类的诸多成员方法略3、...

获取请求参数并封装对象(映射封装) 5

续写至jaWeb下的获取请求参数并封装对象(手动封装) 4篇一、新增功能类二、修改功能类的逻辑1、2、三、修改页面提交路径四...

获取请求参数并封装对象(工具封装) 6

续写至jaWeb下的获取请求参数并封装对象(映射封装) 5一、准备工具类二、再项目里面新建libs包,并报根据类库放进去1、先...

EF添加。Entity Framework添加。abp vnext ef 添加,批量添加的封装

EF的添加如下,代码比较添加: ShipEntities se = new ShipEntities(); se.Users.Add(user); se.SaveChanges(); 方法2:...

SSM整合-表现层数据封装 08

一、案例、1、创建封装对象2、创建编码规则对象3、表现出的用法

ado.net基本使用sqlhelper简单封装dbhelper简单使用

sqlhelper简单封装 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Lin...

.net core连接dm达梦数据库。ado.net连接达梦数据库。连接达梦数据库sqlhelper封装。dm数据库参数化

先安装.net core连接dm达梦数据库的依赖&lt;ItemGroup&gt; &lt;PackageReference Include=&quot;FreeSql.Provider.Damen...
旧年素颜,君记否
排名
15
文章
52
粉丝
1
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术