日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

LINQ系列:LINQ to SQL Join连接

發(fā)布時(shí)間:2025/1/21 数据库 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LINQ系列:LINQ to SQL Join连接 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 一對(duì)多

var expr = context.Products.Where(p => p.Category.CategoryName == "LINQ to SQL" && p.UnitPrice > 10m).Select(p => new{p.ProductID,p.ProductName}); var expr = from p in context.Productswhere p.Category.CategoryName == "LINQ to SQL" && p.UnitPrice > 10mselect new{p.ProductID,p.ProductName}; SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName]FROM [dbo].[Product] AS [Extent1]INNER JOIN [dbo].[Category] AS [Extent2] ON [Extent1].[CategoryID] = [Extent2].[CategoryID]WHERE (N'LINQ to SQL' = [Extent2].[CategoryName]) AND ([Extent1].[UnitPrice] > cast(10 as decimal(18))) var expr = from p in context.Productswhere p.UnitPrice > 10mjoin c in context.Categories on p.CategoryID equals c.CategoryIDselect new{p.ProductID,p.ProductName,c.CategoryName}; SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], [Extent2].[CategoryName] AS [CategoryName]FROM [dbo].[Product] AS [Extent1]INNER JOIN [dbo].[Category] AS [Extent2] ON [Extent1].[CategoryID] = [Extent2].[CategoryID]WHERE [Extent1].[UnitPrice] > cast(10 as decimal(18))

?

var expr = from p in context.Productsjoin c in context.Categories on p.CategoryID equals c.CategoryIDselect new{p.ProductID,p.ProductName,c.CategoryName};

?

SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], [Extent2].[CategoryName] AS [CategoryName]FROM [dbo].[Product] AS [Extent1]INNER JOIN [dbo].[Category] AS [Extent2] ON [Extent1].[CategoryID] = [Extent2].[CategoryID]

2. 雙向關(guān)聯(lián)

var expr = from c in context.Categoriesjoin p in context.Products on c.CategoryID equals p.CategoryID into cpselect new{c.CategoryName,TotalCategoryProducts = cp.Count()}; SELECT [Extent1].[CategoryID] AS [CategoryID], [Extent1].[CategoryName] AS [CategoryName], (SELECT COUNT(1) AS [A1]FROM [dbo].[Product] AS [Extent2]WHERE [Extent1].[CategoryID] = [Extent2].[CategoryID]) AS [C1]FROM [dbo].[Category] AS [Extent1]

3. left out join

var expr = from c in context.Categoriesjoin p in context.Products on c.CategoryID equals p.CategoryID into CategoryProductsfrom cp in CategoryProducts.DefaultIfEmpty()select new{c.CategoryID,c.CategoryName,TotalProducts = CategoryProducts.Count()}; SELECT [Extent1].[CategoryID] AS [CategoryID], [Extent1].[CategoryName] AS [CategoryName], (SELECT COUNT(1) AS [A1]FROM [dbo].[Product] AS [Extent3]WHERE [Extent1].[CategoryID] = [Extent3].[CategoryID]) AS [C1]FROM [dbo].[Category] AS [Extent1]LEFT OUTER JOIN [dbo].[Product] AS [Extent2] ON [Extent1].[CategoryID] = [Extent2].[CategoryID]

4. inner join select many

var expr = from c in context.Categoriesfrom p in c.Productswhere c.CategoryName == "LINQ to SQL"select p; var expr = context.Categories.Where(c => c.CategoryName == "LINQ to SQL").SelectMany(c => c.Products); SELECT [Extent2].[ProductID] AS [ProductID], [Extent2].[CategoryID] AS [CategoryID], [Extent2].[ProductName] AS [ProductName], [Extent2].[UnitPrice] AS [UnitPrice], [Extent2].[UnitsInStock] AS [UnitsInStock], [Extent2].[Discontinued] AS [Discontinued]FROM [dbo].[Category] AS [Extent1]INNER JOIN [dbo].[Product] AS [Extent2] ON [Extent1].[CategoryID] = [Extent2].[CategoryID]WHERE N'LINQ to SQL' = [Extent1].[CategoryName]

轉(zhuǎn)載于:https://www.cnblogs.com/libingql/p/4052906.html

總結(jié)

以上是生活随笔為你收集整理的LINQ系列:LINQ to SQL Join连接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。