EF---结合三层方法的应用
来源:互联网 发布:java电商项目源码 编辑:程序博客网 时间:2024/05/22 03:20
1 public class CustomerDAL 2 { 3 //数据库上下文对象 4 YYMMVCEntities db = new YYMMVCEntities(); 5 /// <summary> 6 /// 新增操作 7 /// </summary> 8 public int Add(Customer customer) 9 {10 db.Customers.AddObject(customer);11 //保存成功后会将自增的ID设置成customer的主键属性12 return db.SaveChanges();13 } 14 //删除15 public int DeleteBy(int cid)16 {17 Customer customer=new Customer(){CID = cid};18 db.Customers.Attach(customer);19 db.Customers.DeleteObject(customer);20 return db.SaveChanges();21 }22 //根据条件删除23 public int DeleteExpression(System.Linq.Expressions.Expression<Func<Customer,bool>> deleWhere)24 {25 List<Customer> customers=db.Customers.Where(deleWhere).ToList();26 customers.ForEach(m=>db.Customers.DeleteObject(m));27 return db.SaveChanges();28 }29 30 //修改方法31 public int Modify(Customer customer)32 {33 db.Attach(customer);34 db.ObjectStateManager.ChangeObjectState(customer, EntityState.Modified);35 return db.SaveChanges();36 }37 //查询38 publicList<Customer> GetListBy(System.Linq.Expressions.Expression<Func<Customer,bool>> seleWhere)39 {40 return db.Customers.Where(seleWhere).ToList();41 }42 //查询和排序43 public List<Customer> GetListBy<Tkey>(System.Linq.Expressions.Expression<Func<Customer,bool>> seleWhere,System.Linq.Expressions.Expression<Func<Customer,Tkey>> orderWhere)44 {45 return db.Customers.Where(seleWhere).OrderBy(orderWhere).ToList();46 }47 //分页查询48 public List<Customer> GetListPaged(int pageIndex,int pageSize,System.Linq.Expressions.Expression<Func<Customer,bool>> orderbyWhere)49 {50 return db.Customers.OrderBy(orderbyWhere).Skip((pageIndex - 1)*pageSize).Take(pageSize).ToList();51 } 52 }
然后我们在DAL层新建一个BaseDAL类,类中内容是通过CustomerDAL修改而来的,将出现Customer的地方替换成了T,出现Customers的地方改成了CreateObjectSet<T>()
,修正后的类如下
1 public class BaseDAL<T> where T:class,new() 2 { 3 //数据库上下文对象 4 YYMMVCEntities db = new YYMMVCEntities(); 5 /// <summary> 6 /// 新增操作 7 /// </summary> 8 public int Add(T customer) 9 {10 //必须限定T的类型,只能为引用类型11 db.CreateObjectSet<T>().AddObject(customer);12 //保存成功后会将自增的ID设置成customer的主键属性13 return db.SaveChanges();14 }15 16 //删除17 public int DeleteBy(T model)18 {19 20 db.CreateObjectSet<T>().Attach(model);21 db.CreateObjectSet<T>().DeleteObject(model);22 return db.SaveChanges();23 }24 //根据条件删除25 public int DeleteExpression(System.Linq.Expressions.Expression<Func<T, bool>> deleWhere)26 {27 List<T> customers = db.CreateObjectSet<T>().Where(deleWhere).ToList();28 customers.ForEach(m => db.CreateObjectSet<T>().DeleteObject(m));29 return db.SaveChanges();30 }31 32 //修改方法33 public int Modify(T customer)34 {35 db.CreateObjectSet<T>().Attach(customer);36 db.ObjectStateManager.ChangeObjectState(customer, EntityState.Modified);37 return db.SaveChanges();38 }39 40 //查询41 public List<T> GetListBy(System.Linq.Expressions.Expression<Func<T, bool>> seleWhere)42 {43 return db.CreateObjectSet<T>().Where(seleWhere).ToList();44 }45 //查询和排序46 public List<T> GetListBy<Tkey>(System.Linq.Expressions.Expression<Func<T, bool>> seleWhere, System.Linq.Expressions.Expression<Func<T, Tkey>> orderWhere)47 {48 return db.CreateObjectSet<T>().Where(seleWhere).OrderBy(orderWhere).ToList();49 }50 //分页查询51 public List<T> GetListPaged(int pageIndex, int pageSize, System.Linq.Expressions.Expression<Func<T, bool>> orderbyWhere)52 {53 return db.CreateObjectSet<T>().OrderBy(orderbyWhere).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();54 55 } 56 }
0 0
- EF---结合三层方法的应用
- EF Core的安装、EF Core与数据库结合
- MVC三层+EF
- EF 三层 BLL DAL
- EF应用带来的好处
- 分享基于EF+WCF的通用三层架构及解析
- 分享基于EF+WCF的通用三层架构及解析
- 分享基于EF+WCF的通用三层架构及解析
- 分享基于EF+WCF的通用三层架构及解析
- 分享基于EF+WCF的通用三层架构及解析
- .NET三层架构与EF
- JavaScript的replace方法与正则表达式结合应用讲解
- JavaScript的replace方法与正则表达式结合应用
- JavaScript的replace方法与正则表达式结合应用讲解
- JavaScript的replace方法与正则表达式结合应用讲解
- .NET的三层架构应用
- Spring结合三层架构
- vs2010 安装EF 的几种方法
- substring的带参用法——中国姓名的拆分
- 吊炸天!74款APP完整源码!
- 深度剖析之 PagerSlidingTabStrip
- HTTP 错误 500.24 - Internal Server Error的解决方法
- EF—主键冲突解决办法
- EF---结合三层方法的应用
- Leetcode 140 Word Break II
- EasyUI——实现展示后台数据代码
- VS快速格式化代码
- MVC——应用Ajax获取不到数据问题解答
- 在声学技术这件事上,小米MIX 怎么就黑科技了?
- redis 之一
- 文本挖掘、文本聚类、热词发现流程图
- Native method not found: com.autonavi.amap.mapcore.MapProjection.nativeLonLat2Geo:(DDLcom/autonavi/a