学习simple.data之进阶篇
一、结果排序
-OrderBy(升序)
-OrderByDescending(降序)
db.Product.All().OrderByFactoryName();
db.Product.All().OrderByFactoryNameDescending();
或
db.Product.All().OrderBy(db.Product.FactoryName);
db.Product.All().OrderByDescending(db.Product.FactoryName);
二、表连接
1 、无外键约束
1.1 自然连接
-Join
-Left Join
-Outer Join
var q = _db.Order.Query()
.Join(_db.OrderDetail, )
.Where(_db.OrderDetail.UnitPrice > );
List<dynamic> employees = q.Select(_db.Order.OrderCode, q.OrderDetail.CategoryName).ToList();
1.2、级联查询
-With
-WithOne
-WithMany
dynamic OrderDetailAlias;
var OrderDetails = db.Order.All()
.With(db.Order.OrderDetail.As("OrderDetailInfo"), out OrderDetailAlias)
.Select( db.Order.OrderCode, BandAlias.Name);
2、外键约束
2.1、单个数据集返回
var orders = _db.Order.FindAllByCustomerId()
.Select(_db.Order.OrderCode, q.Order.OrderDetail.CategoryName);
(利用数据库外键)
var orders = _db.Order.FindAllByCustomerId()
.Select(_db.Order.OrderCode, _db.OrderDetail.CategoryName)
.Join(_db.OrderDetail).On(OrderId: _db.Order.PKID);
(替代外键)
var orders = _db.Order.FindAllByCustomerId()
.Select(_db["Order"]["OrderCode"], _db["OrderDetail"]["CategoryName"])
.Join(_db["OrderDetail"]).On(OrderId: _db["Order"]["PKID"]);
(替代外键-索引写法)
三、聚合函数
1、Having
var orderDetails= db.OrderDetail.All()
.Select(db.OrderDetail.Order.OrderCode,
db.OrderDetail.PKID.Count().As("OrderDetailCount"))
.Having(db.OrderDetail.PKID.Count() > );
2、Max、Min、Sum、Count、Avg
var orderDetails=db.OrderDetail.All().Having(db.OrderDetail.UnitPrice.Max()>);
var orderDetails=db.OrderDetail.All().Having(db.OrderDetail.UnitPrice.Min()>100);
3、Count、CountDistinct
var orderDetails=db.OrderDetail.All().Select(db.OrderDetail.OrderId.Count());
var orderDetails=db.OrderDetail.All().Select(db.OrderDetail.OrderId.CountDistinct());去重数量
四、帮助函数
1、Length(字段长度)
var codeLength=db.Order.Select(db.Order.OrderCode.Length().As("CodeLength"));
2、转换为标量值
2.1、ToScalar、ToScalar<T>从查询结果中返回一个属性作为标量值
int id=db.Order.Get().ToScalar();
int id=db.Order.Select(db.Order.Id).Get().ToScalar();
2.2、ToScalarOrDefault、ToScalarOrDefault<T>从查询结果中返回一个属性作为标量值,这个值作为它的默认值。如果属性值为NULL,ToScalarOrDefault<T>返回default<T>
string orderCode=db.Order.FindAllById().Select(db.Order.OrderCode).ToScalarOrDefault();
2.3、ToScalarList、ToScalarList<T>从一系列查询结果中返回某个列表作为标量值
List<string> orderDetails=db.OrderDetail.FindAllByOrderId().Select(db.OrderDetail.CategoryName).ToScalarList<string>();
2.4、ToScalarArray、ToScalarArray<T>从一系列查询结果中返回某个数组作为标量值
string[] orderDetails=db.OrderDetail.FindAllByOrderId().Select(db.OrderDetail.CategoryName).ToScalarArray<string>();
待续...
学习simple.data之进阶篇的更多相关文章
- 学习simple.data之高级篇
一.调用存储过程 1.不带参数 CREATE PROCEDURE ProcedureWithoutParams AS SELECT * FROM ORDER; 调用db.ProcedureWithou ...
- 学习simple.data之基础篇
simple.data是一个轻量级的.动态的数据访问组件,支持.net4.0. 1.必须条件和依赖性: v4.0 or greater of the .NET framework, or v2.10 ...
- python 学习笔记十三 JQuery(进阶篇)
jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...
- MySQL学习笔记——基础与进阶篇
目录 一.###MySQL登录和退出 二.###MySQL常用命令 三.###MySQL语法规范 四.###基础查询 五.###条件查询 六.###排序查询 七.###常见函数的学习 八.###分组查 ...
- HTML学习(二)进阶篇
在博客园中有许多大神对HTML超文本标记语言写了很多内容,总结了很多知识,这里对我看到的博客文章, 所学到的知识,做一个总结. 一)列表和表格 dl→definition list(定义列表),见备 ...
- python 学习笔记十 rabbitmq(进阶篇)
RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...
- PHP学习笔记 - 进阶篇(11)
PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...
- PHP学习笔记 - 进阶篇(7)
PHP学习笔记 - 进阶篇(7) 文件操作 读取文件内容 PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中. $conte ...
- JavaScript学习笔记 - 进阶篇(1)- JS基础语法
前言 JavaScript能做什么? 1.增强页面动态效果(如:下拉菜单.图片轮播.信息滚动等) 2.实现页面与用户之间的实时.动态交互(如:用户注册.登陆验证等) JS进阶篇学习什么? 在JavaS ...
随机推荐
- (转)如何检查系统是否支持Zend Optimizer
原文地址:http://blog.chinaunix.net/uid-25266990-id-2978539.html Zend Optimizer 主要有两个功能: 1.可以加速 PHP 脚本的执行 ...
- Eclipse不能进入断点
如题:Eclipse不能进入断点,可能是项目没有build,如果是maven项目,clean,在maven install就可以了
- Integer cache
View.findViewById采用深度遍历,找到第一个匹配的控件 Integer Cache public static void testIntegerCache() { Class cache ...
- windows7环境下svn服务器的配置及使用
一.安装 1 软件准备: Setup-Subversion-1.7.8 TortoiseSVN-1.7.11.23600-win32-svn-1.7.8 2 安装: 安装个人的需要设定好安装路径. 3 ...
- selenium 速查手册 python版
1.安装与配置 pip install selenium 基本使用selenium都是为了动态加载网页内容用于爬虫,所以一般也会用到phantomjs mac下如果要配置phantomjs环境的话 e ...
- Java虚拟机内存模型及垃圾回收监控调优
Java虚拟机内存模型及垃圾回收监控调优 如果你想理解Java垃圾回收如果工作,那么理解JVM的内存模型就显的非常重要.今天我们就来看看JVM内存的各不同部分及如果监控和实现垃圾回收调优. JVM内存 ...
- DB2命令大全
1.1查看表空间 db2 list tablespaces show detail 1.2查看数据库的表死锁 方法一: 打开监控 db2 update monitor switches using ...
- mysql中字符集和校对规则
首先,明确一下字符集和校对规则的概念: 字符集(charset):是一套符号和编码 校对规则(collation):是在字符集内用于比较字符的一套规则,比如有的规则区分大小写,有的则无视 ...
- 洛谷P2723 丑数 Humble Numbers
P2723 丑数 Humble Numbers 52通过 138提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目背景 对于一给定的素数 ...
- [drp 8]get和post的区别,以及乱码问题的解决
导读:不管是之前做.NET还是现在做Java的项目,都有涉及到get和post请求,第一次遇到的时候,应该是在人事系统的时候,那时候说要总结,结果一直没有总结.现在,做一个初步的总结,连着总结一下提交 ...