为了账号安全,请及时绑定邮箱和手机立即绑定

几种常见复合sql查询语句的linq写法

标签:
MySQL


1.IN 语句
尝试了很多次,好象linq死活不生成in语句,无奈只能做了下变换

例,要找出"手机大类"以及"手机下属所有子类"的产品 (手机大类的ID为D0C37275-2279-4590-A679-C65A4F28918F) 

select F_ID,F_Name,F_CLsID From T_Product Where F_ClsID in (
 Select F_ID From T_Class Where F_ID='D0C37275-2279-4590-A679-C65A4F28918F' OR F_ParentIdStr like '%D0C37275-2279-4590-A679-C65A4F28918F%')

效果上等效于

Select P.F_ID,P.F_Name,P.F_ClsID From T_Product As P Inner Join T_Class As C On C.F_ID = P.F_CLSID where 
C.F_ID='D0C37275-2279-4590-A679-C65A4F28918F' OR C.F_ParentIdStr like '%D0C37275-2279-4590-A679-C65A4F28918F%'

Select P.F_ID,P.F_Name,P.F_ClsID From T_Product As P,T_Class As C where 
P.F_ClSID = C.F_ID And (
C.F_ID='D0C37275-2279-4590-A679-C65A4F28918F' OR 
C.F_ParentIdStr like '%D0C37275-2279-4590-A679-C65A4F28918F%')

linq to sql的等效写法:

var query = from p in db.T_Products join 
              c in db.T_Classes on  p.F_CLSID equals c.F_ID
             where c.F_ID == new Guid("D0C37275-2279-4590-A679-C65A4F28918F") || c.F_ParentIDStr.Contains("D0C37275-2279-4590-A679-C65A4F28918F")
          select new { p.F_ID, p.F_Name };

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消