1.简单形式:

var q = from c in db.Customers where c.City == "London" select c;  使用where筛选在伦敦的客户

var q = from e in db.Employees where e.HireDate >= new DateTime(1994, 1, 1) select e;   筛选1994 年或之后雇用的雇员:

2.关系条件形式:

var q =
    from p in db.Products
    where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
    select p;   筛选库存量在订货点水平之下但未断货的产品

var q =from p in db.Productswhere p.UnitPrice > 10m || p.Discontinuedselect p;筛选出UnitPrice 大于10 或已停产的产品:
var q =db.Products.Where(p=>p.UnitPrice > 10m).Where(p=>p.Discontinued);

调用两次where以筛选出UnitPrice大于10且已停产的产品。

3.Frist形式
Shipper shipper = db.Shippers.First();
选择表中的第一个发货方。
Customer cust = db.Customers.First(c => c.CustomerID == "BONAP");
选择CustomerID 为“BONAP”的单个客户
Order ord = db.Orders.First(o => o.Freight > 10.00M);
选择运费大于 10.00 的订单

Select/Distinct操作符

1.简单用法:

var q =from c in db.Customersselect c.ContactName;

这个示例返回仅含客户联系人姓名的序列。

2.匿名类型形式:

var q =from c in db.Customersselect new {c.ContactName, c.Phone};

上面语句描述:使用 SELECT 和匿名类型返回仅含客户联系人姓名和电话号码的序列

var q =from e in db.Employeesselect new{Name = e.FirstName + " " + e.LastName,Phone = e.HomePhone};

上面语句描述:使用SELECT和匿名类型返回仅含雇员姓名和电话号码的序列,并将FirstName和LastName字段合并为一个字段“Name”,此外在所得的序列中将HomePhone字段重命名为Phone。

var q =

from p in db.Products select new { p.ProductID, HalfPrice = p.UnitPrice / 2 };

上面语句描述:使用SELECT和匿名类型返回所有产品的ID以及HalfPrice(设置为产品单价除以2所得的值)的序列。

3.条件形式:

说明:生成SQL语句为:case when condition then else。

var q =from p in db.Productsselect new{p.ProductName,Availability =p.UnitsInStock - p.UnitsOnOrder < 0 ? "Out Of Stock" : "In Stock"};

上面语句描述:使用SELECT和条件语句返回产品名称和产品供货状态的序列。

4.指定类型形式:

说明:该形式返回你自定义类型的对象集。
var q =from e in db.Employeesselect new Name{FirstName = e.FirstName,LastName = e.LastName};
上面语句描述:使用SELECT和已知类型返回雇员姓名的序列。

5.筛选形式:

说明:结合where使用,起到过滤作用。

var q =from c in db.Customerswhere c.City == "London"select c.ContactName;

上面语句描述:使用SELECT和WHERE返回仅含伦敦客户联系人姓名的序列。

6.shaped形式(整形类型):

说明:其select操作使用了匿名对象,而这个匿名对象中,其属性也是个匿名对象。

var q =from c in db.Customersselect new {c.CustomerID,CompanyInfo = new {c.CompanyName, c.City, c.Country},ContactInfo = new {c.ContactName, c.ContactTitle}};

语句描述:使用SELECT 和匿名类型返回有关客户的数据的整形子集。查询顾客的ID和公司信息(公司名称,城市,国家)以及联系信息(联系人和职位)。

7.嵌套类型形式:

说明:返回的对象集中的每个对象DiscountedProducts属性中,又包含一个集合。也就是每个对象也是一个集合类。

var q =from o in db.Ordersselect new {o.OrderID,DiscountedProducts =from od in o.OrderDetailswhere od.Discount > 0.0select od,FreeShippingDiscount = o.Freight};

语句描述:使用嵌套查询返回所有订单及其OrderID 的序列、打折订单中项目的子序列以及免送货所省下的金额。

8.本地方法调用形式(LocalMethodCall):

这个例子在查询中调用本地方法PhoneNumberConverter将电话号码转换为国际格式。

var q = from c in db.Customerswhere c.Country == "UK" || c.Country == "USA"select new{c.CustomerID,c.CompanyName,Phone = c.Phone,InternationalPhone = PhoneNumberConverter(c.Country, c.Phone)};

PhoneNumberConverter方法如下:

public string PhoneNumberConverter(string Country, string Phone)
{Phone = Phone.Replace(" ", "").Replace(")", ")-");switch (Country){case "USA":return "1-" + Phone;case "UK":return "44-" + Phone;default:return Phone;}
}

下面也是使用了这个方法将电话号码转换为国际格式并创建XDocument

XDocument doc = new XDocument(new XElement("Customers", from c in db.Customerswhere c.Country == "UK" || c.Country == "USA"select (new XElement("Customer",new XAttribute("CustomerID", c.CustomerID),new XAttribute("CompanyName", c.CompanyName),new XAttribute("InterationalPhone", PhoneNumberConverter(c.Country, c.Phone))))));

9.Distinct形式:

说明:筛选字段中不相同的值。用于查询不重复的结果集。生成SQL语句为:SELECT DISTINCT [City] FROM [Customers]

var q = (from c in db.Customersselect c.City ).Distinct();

语句描述:查询顾客覆盖的国家。

转载于:https://www.cnblogs.com/dubing/articles/2087381.html

经典linq模板语句相关推荐

  1. 2019CAD设置经典模式模板详细步骤

    2019CAD设置经典模式步骤 第一步:下载经典模式模板 链接:https://pan.baidu.com/s/1Wyt0SQxqOG1nETg55rHq-w 提取码:lpxq 第二步:安装 1 2打 ...

  2. 浙江大学计算机学院各专业介绍ppt模板,浙大硕士论文答辩经典ppt模板(几乎涵盖各种ppt制作技巧).ppt...

    浙大硕士论文答辩经典ppt模板(几乎涵盖各种ppt制作技巧).ppt 还剩 33页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环 ...

  3. 文化娱乐免费的经典PPT模板哪里可以下载?经典大气PPT模板大全

    想要做出一份高质量的PPT,必要的四个要素是要有的,专业.逻辑.框架和视觉.我们往往在做PPT时候都会去借助PPT模板,不同风格的PPT模板适用不同场合,在使用模板原本配色就是最稳定安全的,那么怎么做 ...

  4. SQL经典50查询语句案例_4(4、查询姓“李”的老师的个数)

    SQL经典50查询语句案例_4: 4.查询姓"李"的老师的个数: SELECT COUNT(Tname) FROM teacher WHERE Tname LIKE '李%' 在M ...

  5. matlab双循环语句,经典MATLAB循环语句.doc

    经典MATLAB循环语句 ? ? 不用 for, if,直接 length(find(diff(a) == 1)) 就可以了 如果非要用for, if s = 0; for n = 1:length( ...

  6. linq查询语句转mongodb

    && (与操作) 子表达式可以通过&&合并来查询满足所有子表达式的文档 var query =from c in collection.AsQueryable<C ...

  7. 经典SQL操作语句【转载】

    1.经典SQL语句大全(绝对的经典) 2. 3. 4.一.基础 1.1.说明:创建数据库 2.CREATE DATABASE database-name 3.2.说明:删除数据库 4.drop dat ...

  8. 经典SQL Server语句大全(超详细)

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  9. 经典常用SQL语句大全(绝对的经典)

    一.基础    1.1.说明:创建数据库   2.CREATE DATABASE database-name    3.2.说明:删除数据库   4.drop database dbname   5. ...

最新文章

  1. 【译】使用Kotlin和RxJava测试MVP架构的完整示例 - 第1部分
  2. SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
  3. 最大医学影像平台将首个实现把医疗AI引入实际应用
  4. 如何在迭代时从列表中删除项目?
  5. CSS3实现页面的平滑过渡
  6. 运行脚本时用SPOOL保存运行结果的问题
  7. Ubuntu设置root登录
  8. studio 快捷键
  9. s3c6410 uboot代码分析《二》
  10. android8.0电脑壁纸,Android用原生分享多张图片适配7.0、8.0
  11. 苹果:失了 5G 会何妨?
  12. Mysql之运算的使用
  13. 【老生谈算法】matlab实现K均值聚类算法——K均值聚类算法
  14. 水经注CAD智能影像加载插件教程
  15. sap 双计量单位_SAP基本计量单位
  16. win10系统hp笔记本开机黑屏一段时间解决方法
  17. 微分中值定理之柯西中值定理
  18. delphi每次mysql密码BDE_关于DELPHI中BDE连接不上ORACLE数据库的問題
  19. webp文件怎么打开?webp压缩工具推荐
  20. 100个数据分析常用指标和术语

热门文章

  1. 改变Keil5所有窗口的背景颜色
  2. 度小满获南京银行三年100亿元授信额度,双方并合作共同发力消费金融
  3. 01-02 | 设计模式之美——王争
  4. idea破解 2018.2.3
  5. 计算机前端总线频率,前端总线(FSB)频率AMD平台系列
  6. php获取条码秤称重后的数据,称重过磅数据可导出电脑表格显示以便财务统计的智能电子秤...
  7. 顶尖学校计算机硕士毕业,计算机科学专业顶尖院校
  8. matlab demux,demux(demux用法)
  9. Python爬取B站历史观看记录并用Bokeh做数据可视化
  10. 第三章 需求挖掘与分析,电子商务与大数据