Linq to sql :查询句法--join

描述:内连接,没有分类的产品查询不到

 

查询句法:

 

var innerjoin = from p inctx.Products 

 

join c in ctx.Categories 

 

on p.CategoryID equals c.CategoryID

 

select p.ProductName;

 

对应SQL

 

SELECT COUNT(*) AS [value]

 

FROM [dbo].[Products] AS [t0]


INNER JOIN [dbo].[Categories] AS [t1] ON[t0].[CategoryID] = ([t1].[CategoryID])


描述:外连接,没有分类的产品也能查询到

 

查询句法:

 

var leftjoin = from p inctx.Products

 

join c in ctx.Categories

 

on p.CategoryID equals c.CategoryID

 

into pro

 

from x in pro.DefaultIfEmpty()

 

select p.ProductName;

 

对应SQL

 

SELECT COUNT(*) AS [value]

 

FROM [dbo].[Products] AS [t0]

 

LEFT OUTER JOIN [dbo].[Categories] AS [t1]ON [t0].[CategoryID] = ([t1].[CategoryID])


你可能会很奇怪,原先很复杂的SQL 使用查询句法会很简单(比如按照条件分组)。

 

但是原先觉得很好理解的SQL 使用查询句法会觉得很复杂(比如连接查询)。其实,我们

 

还可以通过其它方式进行连接操作,在以后说DataLoadOptions类型的时候会再说。虽然

 

Linq to sql 已经非常智能了,但是对于非常复杂的查询还是建议通过存储过程实现,下次讲

 

解如何调用存储过程。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值