LINQ to SQL语句浅析

在向大家详细介绍LINQ to SQL语句之前,首先让大家了解下Select操作形式,分别为指定嵌套类型形式、LocalMethodCall形式、Distinct形式。

这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学习LINQ to SQL语句,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用。本篇详细说明一下Select操作形式,分别为指定嵌套类型形式、LocalMethodCall形式、Distinct形式。

1.嵌套类型形式:

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

 
 
 
  1. var q =  
  2. from o in db.Orders  
  3. select new {  
  4. o.OrderID,  
  5. DiscountedProducts =  
  6. from od in o.OrderDetails  
  7. where od.Discount > 0.0  
  8. select od,  
  9. FreeShippingDiscount = o.Freight  
  10. }; 

2.LocalMethodCall形式:

这个例子InternationalPhone调用本地方法PhoneNumberConverter

 
 
 
  1. var q = from c in db.Customers  
  2. where c.Country == "UK" || c.Country == "USA"  
  3. select new  
  4. {  
  5. c.CustomerID,  
  6. c.CompanyName,  
  7. Phone = c.Phone,  
  8. InternationalPhone =   
  9. PhoneNumberConverter(c.Country, c.Phone)  
  10. }; 

PhoneNumberConverter方法如下:

 
 
 
  1. public string PhoneNumberConverter(string Country, string Phone)  
  2. {  
  3. PhonePhone = Phone.Replace(" ", "").Replace(")", ")-");  
  4. switch (Country)  
  5. {  
  6. case "USA":  
  7. return "1-" + Phone;  
  8. case "UK":  
  9. return "44-" + Phone;  
  10. default:  
  11. return Phone;  
  12. }  

下面也是使用了这个方法

 
 
 
  1. XDocument doc = new XDocument(  
  2. new XElement("Customers", from c in db.Customers  
  3. where c.Country == "UK" || c.Country == "USA"  
  4. select (new XElement("Customer",  
  5. new XAttribute("CustomerID", c.CustomerID),  
  6. new XAttribute("CompanyName", c.CompanyName),  
  7. new XAttribute("InterationalPhone",   
  8. PhoneNumberConverter(c.Country, c.Phone))  
  9. }  
  10. }  
  11. }  
  12. }; 

3.Distinct形式:

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

 
 
 
  1. var q = (  
  2. from c in db.Customers  
  3. select c.City )  
  4. .Distinct(); 

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

【编辑推荐】

  1. LINQ to SQL Table浅谈
  2. Linq语句问题的解决方法
  3. Ling to sql更新实体概述
  4. Linq实体继承简单描述
  5. Linq Library概述

新闻标题:LINQ to SQL语句浅析
标题网址:http://www.mswzjz.cn/qtweb/news34/374634.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能