LINQ系列:LINQ to SQL Join连接
生活随笔
收集整理的這篇文章主要介紹了
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)題。
- 上一篇: C#使用剪切板复制程序
- 下一篇: 通过案例学调优之--SQL Profil