博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lsjORM ----让开发变得更加快捷(二)
阅读量:6936 次
发布时间:2019-06-27

本文共 4620 字,大约阅读时间需要 15 分钟。

lsjORM结构

 

跟传统三层没有多大区别,这里添加DTO(参数列表)跟PetaPoce(数据库操作),普通的三层我们都喜欢用DBHelper或者SqlHelper来封装sql的辅助方法,PetaPoce更加强大,网上已经有不少资料了,很容易就能学会它

lsjORM参数列表类(Dtb_Base)

 

sql语句很重要的一部分就是where后面的条件,这里的参数列表主要是为了补充sql语句的where部分,而且只用写一次,在所有的地方都可以直接调用,打个比方,我需要查询age > 16 and sex = 1

的所有学生,这个sql就用到两个参数,比如我要删除age > 16 and sex = 1的所有学生,又需要重复的写where,这是一件麻烦的事,我们可以通过dto很好的解决它.

DTO的主要作用就是用来给Sql语句追加where后面的参数,常用于表里某个字段 > n, <n, =n, like n, in n

你可以很方便的定义它,就跟定义model里面的属性一样,并且写上注释,让调用它的人能直接明白意思

 

-----------------------------------------------------------------定义DTO--------------------------------------------------------

1  public partial class Dtb_Users : Dtb_Base 2     { 3         ///  4         /// 根据组别查询 5         ///  6         public int? Group_id { get; set; } 7  8         ///  9         /// 根据mobile查询10         /// 11         public string Mobile { get; set; }12 13         private List
_inNickName = new List
();14 15 ///
16 /// 查找集合里匹配的所有数据17 /// 18 public List
InNickName 19 {20 get { return _inNickName; }21 set { _inNickName = value; }22 }23 }

这里我在Dtb_User类里定义了3个参数,分部是Group_id,Mobile,InNickName ,我可以根据这三个参数任意的组合查询条件,比如查询用户表里某个集合用户里面属于某个组的所有用户....你可以根据需求随意的定义它们.

 

 

-----------------------------------------------------------------实现DTO--------------------------------------------------------

1                     ///  2                     /// 重写参数列表 3                     ///  4                     ///  5                     /// 
6 public override Sql GetWhere(Dtb_Base dto) 7 { 8 Dtb_Users dto_users = dto as Dtb_Users; 9 var sql = new CZDBUtility.PetaPoco.Sql();10 if (dto.id.HasValue)11 {12 sql.Where("id=@0", dto.id);13 }14 if (!string.IsNullOrEmpty(dto_users.Mobile)) 15 {16 sql.Where("mobile=@0", dto_users.Mobile);17 }18 if (dto_users.Group_id.HasValue) 19 {20 sql.Where("Group_id=@0", dto_users.Group_id);21 }22 if (dto_users.InNickName.Count > 0) 23 {24 sql.Where("Nick_name in(@0)", dto_users.InNickName);25 }26 return sql;27 }

当定义了参数列表后,必须要在对应的B层去实现它,否则无效,可以看到这是一个简单的拼接where条件的方法.

PS:DTO一个参数列表,用来传递参数的载体

 

 

 

-----------------------------------------------------------------实现增删改查操作--------------------------------------------------------

1  public ActionResult Index() 2         { 3             //Common.CreateFile cf = new Common.CreateFile(); 4             //cf.CreateEntityAll(); 5  6             B_Users b_user = new B_Users(); 7             //============添加一个用户=========================== 8             M_Users m_user = new M_Users(); 9             m_user.User_name = "999999";10             m_user.Mobile = "150150150";11             m_user.Nick_name = "aabb";12             m_user.Password = "123456";13             var res = b_user.Add(m_user); //返回添加成功后的id14 15             //============查询单个用户===========================16             m_user = b_user.GetModel(res); //根据id查询单个用户17             Dtb_Users dto = new Dtb_Users();18             dto.Mobile = "150150150";19             m_user = b_user.GetModel(dto); //根据dto查询单个用户,如果出现多条数据,则返回第一条20 21             //============查询多个用户===========================22             List
list_user = b_user.GetList(dto); //查询用户集合,不分页23 dto.page.Page_Size = 10; //每页条数24 dto.page.Current_Page = 1;//页码25 dto.page.Order_field = "id desc";//排序方式26 dto.page.CentSize = 5; //中间码,给分页控件调用,如果中间页数超过这个数,则用...代替27 list_user = b_user.GetList(dto); //查询用户集合,分页,排序28 //dto.page.Object_Count 当查询结束后,dto会自动获取总条数29 //dto.page.Page_Num 当查询结束后,dto会自动获取总页数30 31 //============修改用户信息===========================32 m_user.Mobile = "123123123";33 bool bl = b_user.Edit(m_user);34 35 //============删除用户===========================36 bl = b_user.Del(res); //根据id删除用户37 38 39 ViewData.Add("list_user", list_user);40 return View();41 }

非常简单就可以完成这些基本操作,下一章讲解怎么联合查询,实现事务.

QQ群:567951547

转载于:https://www.cnblogs.com/tibos/p/5750516.html

你可能感兴趣的文章
POJ 1328
查看>>
程序应用程序PureMvc学习(一)
查看>>
获取元素offset的方法
查看>>
Javascript综合应用小案例
查看>>
想统计指定用户每天通过EXCHANGE发送了多少封邮件么?
查看>>
PostgreSQL中,如何查询表所对应的文件名
查看>>
循环、迭代、遍历和递归
查看>>
chrome操作技巧
查看>>
cocos2d-x之qt port
查看>>
HDU-4568 Hunter 状态压缩
查看>>
使用MyEclipse开发第一个Web程序
查看>>
Windows 7上的DirectX 11.1
查看>>
屌丝程序员的那些事(二)-第一次面试
查看>>
JSP基础(二)JSP语法概述
查看>>
京东商城招聘自动调价系统架构师 T4级别
查看>>
浅C#中的装箱和拆箱
查看>>
JavaScript富应用MVC MVVM框架
查看>>
采用左右值编码来存储无限分级树形结构的数据库表设计
查看>>
[置顶] 信息熵的计算
查看>>
WinJS.Binding.List与kendo.data.ObservableArray
查看>>