EF架构D层中公共方法使用文档说明书-张连海-2014年12月7日
今天才知道有这篇文档,为了方便查询,我还是传到博客上去,嘿嘿……
【举例说明】
D层中,我们抽象出了一些公共方法,D层中具体的数据访问对象继承了这些方法。
我们以Student为例,其对应的实体、B层和D层的类分别为Student、StudentService、StudentDAL,B层实体化出来的类为studentService。实体中的属性为
主键ID:SID
姓名:Name
性别:Sex
年龄:Age
【方法说明】
1. 查询全部:LoadItems()
代码示例:
List<Student> result = studentService.LoadItems();
2. 按原生SQL语句查询:LoadItems(string strSql)
代码示例:
List<Student> result = studentService.LoadItems(“select * from Student”);
3. 按条件查询:LoadItems(Func<T, bool> whereLambda)
代码示例:
//查询ID=2的学生
List<Student> result = studentService.LoadItems(u=>u.ID=2);
4. 分页查询 + 条件查询 + 排序:LoadPageItems<Tkey>(int pageSize, int pageIndex, out int total, Func<T, bool> whereLambda, Func<T, Tkey> orderbyLambda, bool isAsc)
代码示例:
//查询要求:每页10条,显示第2页,查询性别为“男”,按年龄增序排列
int totalRecord;
List<Student> result = studentService.LoadItems(10,2,u=>u.ID=2,out totalRecord,u=>u.Sex=”男”,u=>u.Age,True);
//Out关键字表示的是传址方式,totalRecord此时为总的记录数
参考资料:
博客资料:http://www.cnblogs.com/ahui/archive/2011/08/04/2127282.html
5. 新增实体:Add(T entity)
代码示例:
//新增姓名为:张三,性别为:男,的学生
Student enStudent=new Student(){Name=”张三”,Sex=”男”};
studentService.Add(enStudent);
6. 按实体更新:Upadate(T entity)
说明:
这个方法和下面的“按参数修改”比,麻烦一些,不用这个方法。
7. 按参数修改 +int Upadate(T model, params string[] proNames)
代码示例:
//把ID=2的学生的姓名和性别分别修改为“李四”、“女”
Student enStudent=new Student(){ID=2,Name=”李四”,Sex=”女”};
studentService. Upadate(enStudent,”Name”,”Sex”);
方法中的函数说明
/// <param name="entity">此参数为要修改的实体对象,里面属性所要修改的字段,其值表示要改成什么结果,如:把性别这个属性改成“女”</param>
/// <param name="proNames">要修改的 属性 名称</param>
/// <returns></returns> 参考资料:
8. 批量修改: Upadate(T model, Expression<Func<T, bool>> whereLambda, params string[] modifiedProNames)
代码示例:
//把年龄大于30的学生性别改为“男”
Student enStudent=new Student(){Sex=”男”};
studentService. Upadate(enStudent,u=>u.Age>30,”Sex”);
方法中的函数说明
/// <param name="entity">此参数为要修改的实体对象,里面属性所要修改的字段,其值表示要改成什么结果,如:把性别这个属性改成“女”</param>
/// <param name="whereLambda">查询条件</param>
/// <param name="proNames">要修改的 属性 名称</param>
/// <returns></returns>
9. 根据id删除:(T entity)
代码示例:
Student enStudent=new Student(){ID=2};
studentService.Delete(enStudent);
10. 根据条件删除:int DelBy(Expression<Func<T, bool>> delWhere)
代码示例:
//删除性别为女的学生
studentService. DelBy (u=>u.Sex=”男”);