Linq to sql 的语法
Linq to SQL 语法查询(子查询 & in操作 & join )
引用地址:http://www.cnblogs.com/82767136/articles/2949541.html
子查询
描述:查询订单数超过5的顾客信息
查询句法:
var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by o.CustomerID into o where o.Count() > 5 select o.Key).Contains(c.CustomerID) select c; |
in 操作
描述:查询指定城市中的客户
查询句法:
var in操作 = from c in ctx.Customers wherenewstring[] { "Brandenburg", "Cowes", "Stavern" }.Contains(c.City) select c;
Join
描述:内连接,没有分类的产品查询不到
查询句法:
var innerjoin = from p in ctx.Products join c in ctx.Categories on p.CategoryID equals c.CategoryID select p.ProductName; |
描述:外连接,没有分类的产品也能查询到
查询句法:
var leftjoin = from p in ctx.Products join c in ctx.Categories on p.CategoryID equals c.CategoryID into pro from x in pro.DefaultIfEmpty() select p.ProductName; |
|
1.简单形式:
var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按CategoryID划分产品。 说明:from p in db.Products 表示从表中将产品对象取出来。group p by p.CategoryID into g表示对p按CategoryID字段归类。其结果命名为g,一旦重新命名,p的作用域就结束了,所以,最后select时,只能select g。当然,也不必重新命名可以这样写: var q = 如果想遍历某类别中所有记录,这样: foreach (var gp in q) 如果想遍历某匿名类中所有记录,要这么做: foreach (var gp in q) 说明:先按CategoryID归类,判断各个分类产品中单价最大的Products。取出CategoryID值,并把UnitPrice值赋给MaxPrice。 4.最小值 说明:先按CategoryID归类,判断各个分类产品中单价最小的Products。取出CategoryID值,并把UnitPrice值赋给MinPrice。 5.平均值 说明:先按CategoryID归类,取出CategoryID值和各个分类产品中单价的平均值。 6.求和 说明:先按CategoryID归类,取出CategoryID值和各个分类产品中单价的总和。 7.计数 说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。 8.带条件计数 说明:先按CategoryID归类,取出CategoryID值和各个分类产品的断货数量。 Count函数里,使用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产品。 9.Where限制 说明:在翻译成SQL语句时,在最外层嵌套了Where条件。 10.多列(Multiple Columns) 说明:既按产品的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key其实质是一个类的对象,Key包含两个Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。 11.表达式(Expression) 说明:按产品单价是否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。 Exists/In/Any/All/Contains操作符 Any 1.简单形式: var q = SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], var q = SELECT [t0].[CategoryID], [t0].[CategoryName], [t0].[Description], 1.带条件形式 Contains string[] customerID_Set = var q = ( var q = ( 2.包含多个值: 总结一下这篇我们说明了以下语句: Group By/Having 分组数据;延迟 适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数。 Count 1.简单形式: var q = db.Customers.Count(); var q = db.Products.Count(p => !p.Discontinued); var q = db.Customers.LongCount(); 1.简单形式: var q = db.Orders.Select(o => o.Freight).Sum(); var q = db.Products.Sum(p => p.UnitsOnOrder); 1.简单形式: var q = db.Products.Select(p => p.UnitPrice).Min(); var q = db.Orders.Min(o => o.Freight); var categories = 1.简单形式: var q = db.Employees.Select(e => e.HireDate).Max(); var q = db.Products.Max(p => p.UnitsInStock); var categories = 1.简单形式: var q = db.Orders.Select(o => o.Freight).Average(); var q = db.Products.Average(p => p.UnitPrice); var categories = |
Linq to sql 的语法的更多相关文章
- LINQ TO SQL 常用语法
LINQ To SQL中IN的用法 IN: C# var result = from s1 in context.Customers where (new string[] { "UK& ...
- Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...
- [转]LINQ To SQL 语法及实例大全
转载自:http://blog.csdn.net/pan_junbiao/article/details/7015633 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过 ...
- LINQ To SQL 语法及实例大全
http://blog.csdn.net/pan_junbiao/article/details/7015633 http://blog.csdn.net/pan_junbiao/article/de ...
- Linq to sql语法
LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...
- Linq to Sql语法及实例大全
LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的 ,而判断条件就是它后面所接的 ...
- 【转】 LINQ To SQL 语法及实例大全
LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...
- LINQ To SQL 语法及实例大全【转】
转http://blog.csdn.net/pan_junbiao/article/details/7015633 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查 ...
- LINQ语法类似于SQL的语法
LINQ语法类似于SQL的语法如下, Models.BookStoreEntities 是从添加新建项中的数据--->ADO.NET实体数据模型--->从数据库生成--->使用5.0 ...
随机推荐
- Zabbix3.2安装部署
zabbix server 前提环境: CentOS6 Lnmp php需要的包(bcmath,mbstring,sockets,gd,libxml,xmlwriter,xmlreader,ctype ...
- CSS基础知识真难啊-浮动
无浮动 <ul style="width: 440px;"> <li id="myli" style="border: 4px so ...
- [U3D 添加大地、天空,用第一视角看看自己做的世界]
1.添加大地.天空. 在下方Assets文件夹里右键,导入素材包. Terrain(地形)和Skybox(天空盒子) 2.选中左边的Terrain,在inspector里,选择中间的刷子(地形),还有 ...
- RabbitMQ 通过记日志来看routingkey
RoutingKey 每个项目都需要记录日志,日志则一般会分为多种级别,常见的是 Info.debug.warn.Error 对于前三种日志,在项目运行中会产生大量的消息,但是一般多数情况下是不会用到 ...
- django写的留言板
代码见 https://github.com/linux-wang/show-me-the-code/tree/master/dj_test 实际上是 https://github.com/linux ...
- Linux DHCP通过OPTION43为H3C的AP下发AC地址(总结)
对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在 ...
- 最佳 Linux 发行版汇总
Linux入门UbuntuUbuntu是一款基于Debian发行版,以Unity作为默认桌面环境的Linux操作系统.他是世界上最流行的发行版之一,每次发行,它都有提升.最新发行版为桌面.移动及其桌面 ...
- Raspberry Pi 3 --- identify the version of linux kernal file
open it
- python不同模式打开文件的完全列表
模式 描述 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头.这是默认模式. r+ 打开一个文件用于读写.文件指 ...
- Hook技术
hook钩子: 使用技术手段在运行时动态的将额外代码依附现进程,从而实现替换现有处理逻辑或插入额外功能的目的. 它的技术实现要点有两个: 1)如何注入代码(如何将额外代码依附于现有代码中). 2)如何 ...