EF(Entity Framework)通用DBHelper通用类,增删改查以及列表
其中
通用类名: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通用类,增删改查以及列表的更多相关文章
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
- Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库
一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...
- 基于Entity Framework的自定义分页,增删改的通用实现
简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...
- 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)
在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...
- abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- 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 ...
- EF 5.0 帮助类 增删改查
原文地址:http://www.cnblogs.com/luomingui/p/3362813.html EF 5.0 帮助类 加入命名空间: using System; using System.D ...
- .net+EF+mvc通过EasyUI的DataGrid实现增删改查
@{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport ...
- django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)
CRUD视图扩展类 1 CreateModelMixin 2 RetrieveModelMixin 3 UpdateModelMixin 4 DestroyModelMixin <1> 创 ...
随机推荐
- matalb sum函数和sum变量的用法
在对矩阵或者向量求和要用到sum函数的时候代码里面千万不要出现将sum作为变量名
- PL/SQL配置访问多个不同IP的oracle
第一步:打开Oracle的tnsnames.ora文件.添加 test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = ...
- SPOJ - ADALIST,双端队列入门模板!
ADALIST - Ada and List 这道题时限6.5s,激动人心啊,好多人STL一顿乱写AC,哈哈,如果熟悉双端队列的话这道题其实是很水的. 题意:n个数的数列,然后接下来Q次操作,每次可以 ...
- Kubernetes对象
Kubernetes对象 在之前的文章已经讲到了很多Kubernets对象,包括pod,service,deployment等等.Kubernets对象是一种持久化,表示集群状态的实体.它是一种声明式 ...
- TeraTerm设定(窗体大小,字体字号)保存为默认值
Tera Term是一款很好的SSH工具,大家经常遇到一个头疼的问题,每次打开的时候,都要自己重新设置一遍Font. 介绍一下把自己喜欢的字体,设置好后,保存到默认配置中的方法. 设置窗体大小: 设置 ...
- 【2018.10.18】noip模拟赛Day2 地球危机(2018年第九届蓝桥杯C/C++A组省赛 三体攻击)
题目描述 三体人将对地球发起攻击.为了抵御攻击,地球人派出了 $A × B × C$ 艘战舰,在太 空中排成一个 $A$ 层 $B$ 行 $C$ 列的立方体.其中,第 $i$ 层第 $j$ 行第 $k ...
- ngrinder的安装
1.官网下载war包(ngrinder-controller),可以使用tomcat启动或者直接nohup java -XX:Permsize=200m -jar ngrinder-3.4.1.war ...
- 将SSM架构中原来关于springSecurity3.x版本的写法配迁移到SpringBoot2.0框架中出现的问题解决记
迁移过程中关于这个安全框架的问题很麻烦,springBoot自带的stater中的版本是5.0,原来系统有通过实现"org.springframework.security.authenti ...
- 关于Boot应用中集成Spring Security你必须了解的那些事
Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...
- AOP面向方面(切面)编程
1.引言 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块.于是出现了以系统模块化特性的面向对象程序设计技术.模块化的面向对象编程极度极地提 ...