其中

通用类名:DBhelper

实体类:UserInfo

 1   //新增
2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo>();
3 UserInfo userinfo = new UserInfo();
4 userinfo.Name = "1";
5 dbhelper.Add(userinfo);
6
7 //根据条件查找列表
8 var entityes = dbhelper.FindList(x => x.Name == "1");
9 List<UserInfo> list = entityes.ToList<UserInfo>();
10
11 Response.Write("姓名为1的数量为:"+list.Count);
12
13 //分页查找
14 int rowcount = 0;
15 var entityes2 = dbhelper.FindPagedList(2, 10, out rowcount,x=>x.Name=="1",s=>s.Id,true);

2.EF(Entity Framework)通用DBHelper通用类,增删改差以及列表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Web; 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;
}
}

EF(Entity Framework)通用DBHelper通用类,增删改查以及列表的更多相关文章

  1. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  2. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  3. 基于Entity Framework的自定义分页,增删改的通用实现

    简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...

  4. 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)

    在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...

  5. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  6. Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 增、查、改、删操作

    Create, Read, Update, and Delete operations¶ 5 of 5 people found this helpful By Tom Dykstra The Con ...

  7. EF 5.0 帮助类 增删改查

    原文地址:http://www.cnblogs.com/luomingui/p/3362813.html EF 5.0 帮助类 加入命名空间: using System; using System.D ...

  8. .net+EF+mvc通过EasyUI的DataGrid实现增删改查

    @{    Layout = null;} <!DOCTYPE html> <html><head>    <meta name="viewport ...

  9. django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1 CreateModelMixin 2 RetrieveModelMixin 3 UpdateModelMixin 4 DestroyModelMixin <1> 创 ...

随机推荐

  1. matalb sum函数和sum变量的用法

    在对矩阵或者向量求和要用到sum函数的时候代码里面千万不要出现将sum作为变量名

  2. PL/SQL配置访问多个不同IP的oracle

     第一步:打开Oracle的tnsnames.ora文件.添加 test = (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = ...

  3. SPOJ - ADALIST,双端队列入门模板!

    ADALIST - Ada and List 这道题时限6.5s,激动人心啊,好多人STL一顿乱写AC,哈哈,如果熟悉双端队列的话这道题其实是很水的. 题意:n个数的数列,然后接下来Q次操作,每次可以 ...

  4. Kubernetes对象

    Kubernetes对象 在之前的文章已经讲到了很多Kubernets对象,包括pod,service,deployment等等.Kubernets对象是一种持久化,表示集群状态的实体.它是一种声明式 ...

  5. TeraTerm设定(窗体大小,字体字号)保存为默认值

    Tera Term是一款很好的SSH工具,大家经常遇到一个头疼的问题,每次打开的时候,都要自己重新设置一遍Font. 介绍一下把自己喜欢的字体,设置好后,保存到默认配置中的方法. 设置窗体大小: 设置 ...

  6. 【2018.10.18】noip模拟赛Day2 地球危机(2018年第九届蓝桥杯C/C++A组省赛 三体攻击)

    题目描述 三体人将对地球发起攻击.为了抵御攻击,地球人派出了 $A × B × C$ 艘战舰,在太 空中排成一个 $A$ 层 $B$ 行 $C$ 列的立方体.其中,第 $i$ 层第 $j$ 行第 $k ...

  7. ngrinder的安装

    1.官网下载war包(ngrinder-controller),可以使用tomcat启动或者直接nohup java -XX:Permsize=200m -jar ngrinder-3.4.1.war ...

  8. 将SSM架构中原来关于springSecurity3.x版本的写法配迁移到SpringBoot2.0框架中出现的问题解决记

    迁移过程中关于这个安全框架的问题很麻烦,springBoot自带的stater中的版本是5.0,原来系统有通过实现"org.springframework.security.authenti ...

  9. 关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

  10. AOP面向方面(切面)编程

    1.引言 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块.于是出现了以系统模块化特性的面向对象程序设计技术.模块化的面向对象编程极度极地提 ...