DMSFrame 之简单用法(二)
上次说了下DMSFrame的一些查询方式,之前也有好多朋友问了下这个ORM与EF有什么样的区别。
要论区别,我自己也总结了几点。如果有其它朋友知道的,可以回复补充下。
1.不需要编辑的时候需要再次查询数据库,可以直接根据条件去更新。
2.支持分布式数据库,可以在实体上定义数据库,甚至可以在代码上定义数据库。这点好像EF是做不到的
3.支持多种数据库,只需要修改配置就好。
继续我们开发之旅吧。。
var user = DMS.Create<Adm_User>()
.OrderBy(q => q.OrderBy(q.UserID))
.Pager(, );
Console.WriteLine(user.GetResultSql());
解析如下:
SELECT TOP 10 [t0].[UserID],[t0].[UserName],[t0].[TrueName],[t0].[UserPwd],[t0].[DeptID],[t0].[DeptName],[t0].[UserCode],[t0].[CompanyEmail],[t0].[MobileNum],[t0].[StatusFlag],[t0].[LastLoginTime],[t0].[LoginTimes],[t0].[LastLoginIp],[t0].[ResetPwdFlag],[t0].[CreateTime],[t0].[CreateUser],[t0].[DeleteFlag],[t0].[DeleteTime],[t0].[DeleteUser],[t0].[UpdateUser],[t0].[UpdateTime],[t0].[Remark]
FROM [Adm_User] AS [t0] WITH(NOLOCK)
ORDER BY [t0].[UserID]
明眼一看就知道是分页查询,值得注意的是分布查询是必须要有OrderBy字段,
OrderBy(q => q.OrderBy(q.UserID)),注意里面还有一个OrderBy,这也是和EF不同的地方,再看看第二页的情况。
var user = DMS.Create<Adm_User>()
.OrderBy(q => q.OrderBy(q.UserID.Desc(), q.CreateTime))
.Pager(2, 10)
.Select(q => q.Columns(q.UserID, q.UserCode));
Console.WriteLine(user.GetResultSql());
解析如下:
SELECT [UserID],[UserCode] FROM(SELECT TOP 20 ROW_NUMBER() OVER(ORDER BY [t0].[UserID] DESC ,[t0].[CreateTime]) RN,[t0].[UserID],[t0].[UserCode]
FROM [Adm_User] AS [t0] WITH(NOLOCK)) [t0]
WHERE RN>10
第二页查询的方式会自动加排序字段进行分页查询的。在查询的时候也会有其它业务需求,只查询我们需要的东西。怎么样,是不是感觉原来查询也可以这么so easy!!
相信这里你也就明白为什么分页查询要排序字段了吧。。
值得说明的事:查询的返回结果可以这几种, ToResult() | 返回DataTable结果;ToList() | 返回类列表结果;ToConditionResult(1) | 返回分页结果(带总项数);
同时还可以返回任意的类列表结果,ToList<T>(); T 可以是任意的class,规则就是与数据库查询出来的字段名称要一致,默认是忽略大小写的,如果需要区分,可以ToList里面加上参数信息
var user = DMS.Create<Adm_User>()
.GroupBy(q => q.GroupBy(q.UserID, q.UserName))
.Select(q => new
{
UserID = q.UserID,
UserName = q.UserName,
CountX = q.LoginTimes.COUNT(),
});
Console.WriteLine(user.GetResultSql());
相关下载:http://files.cnblogs.com/files/kingkoo/DMSFrameRights.zip 此版本为以前的一个版本,最新的版本请加群问群主吧
新上传DMSFrame版本文件:http://files.cnblogs.com/files/kingkoo/DMSFrame_Secure20150606.7z
DMSFrame 之简单用法(二)的更多相关文章
- DMSFrame 之简单用法(一)
1.DMSFrame是一个完整的ORM框架,框架相对来说也比成熟了.使用上有些地方还是比较方便的.DLL文件大约300K左右,但却可以支持各种方式的查询,完全的LINQ化的方式书写代码,更有利于维护. ...
- ios初识UITableView及简单用法二(模型数据)
// // ViewController.m // ZQRTableViewTest // // Created by zzqqrr on 17/8/24. // Copyright (c) 2017 ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- SQL*Plus break与compute的简单用法
SQL*Plus break与compute的简单用法在SQL*Plus提示符下输出求和报表,我们可以借助break与compute两个命令来实现.这个两个命令简单易用,可满足日常需求,其实质也相当于 ...
- Knockout简单用法
Knockout简单用法 在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架 ...
- JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法
一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Be ...
随机推荐
- Java基础的一次总结
二重循环核心:就是我们学习的内容中,一直在不停的打印图形,当我们写完所有打印图形的题目后,我们站在一个 新的高度上来看二重循环解决图形问题的时候.我们知道核心思想就是:就是寻找外层循环变量i和内层循环 ...
- D. Book of Evil
D. Book of Evil time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- MyEclipse使用总结——设置MyEclipse使用的Tomcat服务器 设置JDK
一.设置使用的Tomcat服务器 如果不想使用MyEclipse自带的tomcat服务器版本,那么可以在MyEclipse中设置我们自己安装好的tomcat服务器 设置步骤如下: Window→Pre ...
- python基于LeanCloud的短信验证
python基于LeanCloud的短信验证 1. 获取LeanCloud的Id.Key 2. 安装Flask框架和Requests库 pip install flask pip install re ...
- How Tomcat works — 六、tomcat处理请求
tomcat已经启动完成了,那么是怎么处理请求的呢?怎么到了我们所写的servlet的呢? 目录 Http11ConnectionHandler Http11Processor CoyoteAdapt ...
- Leetcode-237 Delete Node in a Linked List
#237. Delete Node in a Linked List Write a function to delete a node (except the tail) in a singl ...
- sqlserver数据库维护脚本大全,值得收藏
下面的代码非但有图文,简直是视频,地址http://www.cnthc.com/?/article/67http://www.cnthc.com/?/article/73 --创建一个玩的数据库Cre ...
- PHP 7問世,2億網站效能翻倍有望
經過10年的漫長等待,PHP 7終於正式問世了.這個影響全球8成網站的開發語言,一舉從5.0版,跳過了功敗垂成的6.0版,一舉進入了7.0時代. 20年前初夏,1995年6月8日,一位愛解決問題的C語 ...
- Zookeeper开源客户端框架Curator简介[转]
Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情 ...
- [算法导论]DFS @ Python
class Graph: def __init__(self): self.V = [] class Vertex: def __init__(self, x): self.key = x self. ...