您的位置:首页 > 数据库

Linq to sql(四):查询句法(二)

2010-06-01 13:40 357 查看
where

描述:查询顾客的国家、城市和订单数信息,要求国家是法国并且订单数大于5

查询句法:

var 多条件 = from c in ctx.Customers

where c.Country == "France" && c.Orders.Count > 5

select new

{

国家 = c.Country,

城市 = c.City,

订单数 = c.Orders.Count

};

对应SQL:

SELECT [t0].[Country], [t0].[City], (

SELECT COUNT(*)

FROM [dbo].[Orders] AS [t2]

WHERE [t2].[CustomerID] = [t0].[CustomerID]

) AS [value]

FROM [dbo].[Customers] AS [t0]

WHERE ([t0].[Country] = @p0) AND (((

SELECT COUNT(*)

FROM [dbo].[Orders] AS [t1]

WHERE [t1].[CustomerID] = [t0].[CustomerID]

)) > @p1)

-- @p0: Input String (Size = 6; Prec = 0; Scale = 0) [France]

-- @p1: Input Int32 (Size = 0; Prec = 0; Scale = 0) [5]

orderby

描述:查询所有没有下属雇员的雇用年和名,按照雇用年倒序,按照名正序

查询句法:

var 排序 = from emp in ctx.Employees

where emp.Employees.Count == 0

orderby emp.HireDate.Value.Year descending, emp.FirstName ascending

select new

{

雇用年 = emp.HireDate.Value.Year,

名 = emp.FirstName

};

对应SQL:

SELECT DATEPART(Year, [t0].[HireDate]) AS [value], [t0].[FirstName]

FROM [dbo].[Employees] AS [t0]

WHERE ((

SELECT COUNT(*)

FROM [dbo].[Employees] AS [t1]

WHERE [t1].[ReportsTo] = [t0].[EmployeeID]

)) = @p0

ORDER BY DATEPART(Year, [t0].[HireDate]) DESC, [t0].[FirstName]

-- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [0]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: