ITPub博客

首页 > IT职业 > IT职场 > 几种常见复合sql查询语句的linq写法

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

IT职场 作者:devinw 时间:2021-09-09 09:15:12 0 删除 编辑


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 };

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2715/viewspace-2801250/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: angualrjs入门教程
下一篇: PHP命名空间
请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    83
  • 访问量
    760