ServiceStack.OrmLite 笔记10-group having 分页orderby等
group having 分页等
var ev = OrmLiteConfig.DialectProvider.SqlExpression();
group的使用
同sql一样,注意group分组的字段要在select里
ev.Select(c => new { c.Birthday, c.Active }).Where(rn => rn.Birthday >= new DateTime(year, 1, 1) && rn.Birthday <= lastDay).GroupBy(rn => new { rn.Birthday,rn.Active});
having的使用
ev.Select(c => new { c.Birthday, c.Active }).Where(rn => rn.Birthday >= new DateTime(year, 1, 1) && rn.Birthday <= lastDay).GroupBy(rn => new { rn.Birthday, rn.Active }).Having(x=>Sql.Max(x.Rate)>5);
orderby 排序
一升一降 先降后升 ordered by Rate Descending and Name Ascending
ev.Where().OrderBy(rn => new { at = Sql.Desc(rn.Rate), rn.Name })
也可以用这个OrderByDescending
Limit 分页
其实就是skip 然后take
ev.Limit(5); 默认是take 即top 5
ev.Limit(0, 4);// first page, page size=4;
ev.Limit(4, 4);// second page
ev.Limit().OrderBy(); // clear limit, clear orde
ToCountStatement 总数
var expr = db.From<LetterFrequency>() .Join<LetterFrequency, LetterStat>() .Where<LetterStat>(x => x.Id > 0);
var rscount= expr.ToCountStatement();//获取expr表达式结果的总数
ev.SelectDistinct(r => r.City);
ev.Select(r => Sql.As(Sql.Max(r.Birthday), "Birthday")); //列别名Birthday
var r2 = db.Scalar<Author, DateTime>(e => Sql.Max(e.Birthday));Author表 DateTime类型
联接
LeftJoin
db.Column < string > ( db.From < TableA > ()
.LeftJoin < TableB >((a, b) => a.Id == b.Id)
.Where < TableB > (b => b.Id == null)
.Select(a => a.Name));
Join
db.From < TableA > ()
.Join < TableB > ()
.OrderBy(x => x.Id);
CrossJoin
db.From < CrossJoinTableA > ()
.CrossJoin < CrossJoinTableB >()
.OrderBy < CrossJoinTableA >(x => x.Id)
.ThenBy < CrossJoinTableB >(x => x.Id);
调试
db.GetLastSql().Print();
最新文章
- 小菜学习Winform(六)剪切板和拖放复制
- Andriod 按钮代码
- NYOJ-244 16进制的简单运算 AC 分类: NYOJ 2014-01-17 21:11 195人阅读 评论(0) 收藏
- Spring框架入门:(非原著,转载)
- android中ViewHolder通用简洁写法
- HDU-1527 取石子游戏
- TatukGIS - GisDefs - ChangeDir 函数
- 【每天一个Linux命令】13. Linux中whereis命令的用法
- CentOS 常用命令及快捷键整理
- [bzoj2333] [SCOI2011]棘手的操作 (可并堆)
- 正确处理下载文件时HTTP头的编码问题(Content-Disposition)
- Lombok快速入门
- 我设计的电脑usb红外遥控键盘原理图
- 作用域&;&;闭包
- 【Hadoop学习之十】MapReduce案例分析二-好友推荐
- selenium打开chrome时,出现 ";您使用的是不受支持的命令行标记:--ignore-certificate-errors";";
- 1-QT-文件操作
- POJ 1157
- KVM的初始化过程
- Android中新建的文件在R没有显示相应的文件解决的方法总结
热门文章
- ASP.NET MVC Model验证总结【转】
- Linux内存管理原理【转】
- 数32位 unsigned int中1的个数
- Discuz2 x3深入研究内容资料
- Java可变长参数方法调用问题
- 天大acm 题号1002 Maya Calendar
- SDUT 2411:Pixel density
- asp.net dropdownlist和listbox
- [转]人人网首页拖拽上传详解(HTML5 Drag&;Drop、FileReader API、formdata)
- C89标准库函数手册(待整理)