本文探讨了将复杂的SQL查询转换为Linq表达式的具体方法,特别是如何处理使用STUFF和FOR XML PATH函数生成的字符串拼接场景。通过示例展示了如何在.NET框架下实现类似SQL的功能。
直接看SQL,各位大神看看如何把这个SQL转换成linq to EF 或者 linq to sql
SELECT risk_id ,
brand_name ,
edit_time ,
edit_user ,
risk_sort ,
merchant_id = STUFF(( SELECT ',' + CONVERT(VARCHAR(20), merch_id)
FROM tbRisk_Base_ProductMerch AS b
WHERE b.risk_id = t.risk_id
FOR
XML PATH('')
), 1, 1, '') ,
key_str0 = STUFF(( SELECT ',' + CONVERT(VARCHAR(20), key_str)
FROM tbRisk_Base_Product_Key AS b
WHERE b.risk_id = t.risk_id
AND is_debar = 0
FOR
XML PATH('')
), 1, 1, '') ,
key_str1 = STUFF(( SELECT ',' + CONVERT(VARCHAR(20), key_str)
FROM tbRisk_Base_Product_Key AS b
WHERE b.risk_id = t.risk_id
AND is_debar = 1
FOR
XML PATH('')
), 1, 1, '')
FROM tbRisk_Base_Product t;