目录

说明

与SQL命令中的select作用相似但位置不同,查询表达式select放在表达式的末尾。并把字句中的变量也就是查询结果返回回来。

简单形式

var q = from c in db.Products select c.ProductName;

上述语句描述:实例返回产品名称的序列。只是一个声明而已,但没有去查询数据,会生成了SQL语句,只有当我们需要该数据的时候,它才会执行这条语句,这就是所谓的延迟加载。如果返回是对象的结果集,可以用ToList()、ToArray()来保存该数据。

匿名类型形式

说明:匿名类型是C#3.0中的新特性。其本质是编辑器会自动生成一个匿名的类来存储我们的临时变量。如:var person = new {Name="Jack",Age=15},编辑器会自动创建一个匿名类,这个类有两个属性Name和Age,然后根据数据初始化对象。

  var t = from c in db.Products
select new
{
c.ProductName,
c.UnitPrice
};

上述语句描述:使用select和匿名类型返回产品的产品名称、产品单价的序列。

 var a = from c in db.Employees
select new
{
Name = c.FirstName + c.LastName,
Phone = c.HomePhone };

上述语句描述:使用select和匿名类型返回雇员的姓名和手机号码的序列,并将FirstName和LastName合并为一个字段Name,将HomePhone重命名为Phoe。

条件形式

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

var b = from c in db.Products
select new
{
c.ProductName,
State = c.UnitsInStock - c.UnitsOnOrder > ? "Out Of Stock" : "In Stock" };

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

指定类型形式

说明:该形式返回你自定义类型的对象集。

 var a = from c in db.Employees
select new Person
{
Name = c.FirstName,
Phone = c.HomePhone };

上述语句描述:使用select和已知类型Person,返回姓名和手机号码的序列。

筛选形式

说明:结合Where起到筛选的作用。

   var d = from c in db.Products
where c.ProductName == "Aniseed Syrup" select c.UnitPrice;

上述语句说明:使用select和Where返回仅含产品名称为Aniseed Syrup的产品单价序列。

shaped形式

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

 var e = from c in db.Orders
select new
{
c.OrderID,
c.OrderDate,
Customer = new { c.Customers.City, c.Customers.Address } };

上述代码描述:使用select返回订单的ID、订单时间、订单客户所在的城市和地址序列。

嵌套形式

说明:返回每个对象集中的DiscountedProducts属性,而此属性也是集合,也就是每个对象的属性结合。

  var u = from o in db.Orders
select new
{
o.OrderID,
DiscountedProducts =
from od in o.Order_Details
where od.Discount > 0.0
select od,
FreeShippingDiscount = o.Freight
};

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

本地调用方法形式

说明:在本例查询中,调用本地方法来判断单价是否大于20,并返回信息。

var m = from g in db.Products.ToList()
select new
{
g.ProductID,
g.ProductName,
g.UnitPrice,
message = GetMessage(g.UnitPrice) };

GetMessage方法如下:

 public string GetMessage(Nullable<decimal> price)
{
if (price > )
{
return "单价大于20元";
}
else
{
return "单价小于20元";
}
}

Distinct形式

说明:筛选不相同的值,用于查询结果集中不重复的数据。

var k = (from j in db.Orders select j.ShipCity).Distinct();

上述代码描述:查询订单覆盖的城市。

最新文章

  1. Go语言并发编程示例 分享(含有源代码)
  2. easyui datebox 设置不可编辑
  3. 使用IntelliJ Idea创建Spring MVC项目
  4. ci框架学习告一段落,总结一下
  5. SpringMVC整合Mybatis的流程
  6. C语言可变参数
  7. stylus导入时 报错These relative modules were not found
  8. XML与HTML的主要差异
  9. JMeter3.0 post参数/BeanShell中文乱码问题
  10. centos7 ssh连接慢
  11. 如何在Ubuntu中安装中文输入法
  12. C# 运用反射把实体类反射成你所想要的格式
  13. ORACLE 把不是SYS用户下的所有JOB删除掉
  14. SRM477
  15. 堆内存泄漏移除导致tcp链接异常高
  16. 20145234黄斐《Java程序设计》实验三—敏捷开发与xp实践
  17. vue-router核心概念
  18. 《Java编程思想》笔记 第六章 访问权限控制
  19. 关于asp.net调用gemalto超级狗api的具体实现
  20. Spring boot 官网学习笔记 - Spring Boot CLI 入门案例

热门文章

  1. smarty学习——组合修改器
  2. PHP独立环境搭建细节
  3. 【转】每天一个linux命令(16):which命令
  4. Oracle ASM 详解
  5. bzoj 3611(洛谷 4103) [Heoi2014]大工程——虚树
  6. 查看 linux cpu 、内存、服务器型号和序列号、磁盘、raid 的信息
  7. JZ2440 裸机驱动 第8章 NAND Flash控制器
  8. C# DateTime 月第一天和最后一天 取法
  9. Sql中判断&quot;数据库&quot;、&quot;表&quot;、&quot;临时表&quot;、&quot;存储过程&quot;和列&quot;是否存在
  10. &quot;二阶“条件概率