国外 电子 商务 网站 欣赏,北京 企业展厅设计公司,网站制作的流程有哪些,网站开发公司排行一、Where操作 适用场景#xff1a;实现过滤#xff0c;查询等功能。 说明#xff1a;与SQL命令中的Where作用相似#xff0c;都是起到范围限定也就是过滤作用的#xff0c;而判断条件就是它后面所接的子句。 Where操作包括3种形式#xff0c;分别为简单形式、关系条件形…一、Where操作 适用场景实现过滤查询等功能。 说明与SQL命令中的Where作用相似都是起到范围限定也就是过滤作用的而判断条件就是它后面所接的子句。 Where操作包括3种形式分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下 1.简单形式 例如使用where筛选在伦敦的客户 var q from c in db.Customers where c.City London select c; 再如筛选1994 年或之后雇用的雇员 var q from e in db.Employees where e.HireDate new DateTime(1994, 1, 1) select e; 2.关系条件形式 筛选库存量在订货点水平之下但未断货的产品 var q from p in db.Products where p.UnitsInStock p.ReorderLevel !p.Discontinued select p; 筛选出UnitPrice 大于10 或已停产的产品 var q from p in db.Products where p.UnitPrice 10m || p.Discontinued select p; 下面这个例子是调用两次where以筛选出UnitPrice大于10且已停产的产品。 var q db.Products.Where(pp.UnitPrice 10m).Where(pp.Discontinued); 3.First()形式 返回集合中的一个元素其实质就是在SQL语句中加TOP (1)。 简单用法选择表中的第一个发货方。 Shipper shipper db.Shippers.First(); 元素选择CustomerID 为“BONAP”的单个客户 Customer cust db.Customers.First(c c.CustomerID BONAP); 条件选择运费大于 10.00 的订单 Order ord db.Orders.First(o o.Freight 10.00M); 二、Select/Distinct 说明和SQL命令中的select作用相似但位置不同查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来延迟。 Select/Distinct操作包括9种形式分别为简单用 法、匿名类型形式、条件形式、指定类型形式、筛选形式、整形类型形式、嵌套类型形式、本地方法调用形式、Distinct形式。 1.简单用法 这个示例返回仅含客户联系人姓名的序列。 var q from c in db.Customers select c.ContactName; 注意这个语句只是一个声明或者一个描述并没有真正把数据取出来只有当你需要该数据的时候它才会执行这个语句这就是延迟加载(deferred loading)。如果在声明的时候就返回的结果集是对象的集合。你可以使用ToList() 或ToArray()方法把查询结果先进行保存然后再对这个集合进行查询。当然延迟加载(deferred loading)可以像拼接SQL语句那样拼接查询语法再执行它。 2.匿名类型形式 说明匿名类型是C#3.0中新特性。其实质是编译器根据我们自定义自动产生一个匿名的类来帮助我们实现临时变量的储存。匿名类型还依赖于另外一个特性支持根据property来创建对象。比如var d new { Name s };编译器自动产生一个有property叫做Name的匿名类然后按这 个类型分配内存并初始化对象。但是var d new {s};是编译不 通过的。因为编译器不知道匿名类中的property的名字。例如stringc d;var d new { c}; 则是可以通过编译的。编译器会创建一个叫 做匿名类带有叫c的property。 例如下例new {c,ContactName,c.Phone};ContactName和Phone都是在映射文件中定义与表中字 段相对应的property。编译器读取数据并创建对象时会创建一个匿名类这个 类有两个属性为ContactName和Phone然后根据数据初始化对象。另外编译器 还可以重命名property的名字。 var q from c in db.Customers select new {c.ContactName, c.Phone}; 上面语句描述使用 SELECT 和匿名类型返回仅含客户联系人姓名和电话号码的序列 var q from e in db.Employees select 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.Products select new { p.ProductName, Availability p.UnitsInStock - p.UnitsOnOrder 0 ? Out Of Stock : In Stock }; 上面语句描述使用SELECT和条件语句返回产品名称和产品供货状态的序列。 4.指定类型形式 说明该形式返回你自定义类型的对象集。 var q from e in db.Employees select new Name { FirstName e.FirstName, LastName e.LastName }; 上面语句描述使用SELECT和已知类型返回雇员姓名的序列。 5.筛选形式 说明结合where使用起到过滤作用。 var q from c in db.Customers where c.City London select c.ContactName; 上面语句描述使用SELECT和WHERE返回仅含伦敦客户联系人姓名的序列。 6.shaped形式(整形类型) 说明其select操作使用了匿名对象而这个匿名对象中其属性也是个匿名对象。 var q from c in db.Customers select 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.Orders select new { o.OrderID, DiscountedProducts from od in o.OrderDetails where od.Discount 0.0 select od, FreeShippingDiscount o.Freight }; 语句描述使用嵌套查询返回所有订单及其OrderID 的序列、打折订单中项目的子序列以及免送货所省下的金额。 8.本地方法调用形式(LocalMethodCall) 这个例子在查询中调用本地方法 PhoneNumberConverter将电话号码转换为国际格式。 var q from c in db.Customers where 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(stringCountry, 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.Customers where 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.Customers select c.City ) .Distinct(); 语句描述查询顾客覆盖的国家。 转载于:https://www.cnblogs.com/czqbk/p/4997754.html