LINQ to SQL语句浅析

开发 后端
这里介绍LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML。

在向大家详细介绍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属性中,又包含一个集合。也就是每个对象也是一个集合类。

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  
}; 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

2.LocalMethodCall形式:

这个例子InternationalPhone调用本地方法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)  
}; 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

PhoneNumberConverter方法如下:

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

下面也是使用了这个方法

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))  
}  
}  
}  
}; 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

3.Distinct形式:

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

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

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

【编辑推荐】

  1. LINQ to SQL Table浅谈
  2. Linq语句问题的解决方法
  3. Ling to sql更新实体概述
  4. Linq实体继承简单描述
  5. Linq Library概述
责任编辑:佚名 来源: IT168
相关推荐

2009-09-16 17:11:35

LINQ To SQL

2009-09-15 10:12:37

LINQ To SQL

2009-09-17 18:05:15

linq to sql

2009-09-14 09:46:00

LINQ to SQL

2009-09-17 17:34:23

linq to sql

2009-09-10 10:37:15

LINQ to SQL

2009-09-09 18:03:47

LINQ to SQL

2009-09-10 10:09:46

LINQ to SQL

2009-09-07 16:25:14

Linq To SQL

2009-09-18 14:25:36

LINQ to SQL

2009-09-14 17:40:47

LINQ To SQL

2010-11-04 09:43:46

LINQ to SQL

2009-09-16 17:44:54

LINQ to SQL

2009-09-15 14:30:11

Linq连接

2009-09-14 19:20:22

LINQ TO SQL

2009-09-17 13:30:32

LINQ to XML

2009-09-15 13:30:54

linq级联

2009-09-07 16:44:28

Linq String

2009-09-16 15:33:22

LINQ to XML

2009-09-14 16:46:15

LINQ to XML
点赞
收藏

51CTO技术栈公众号