LINQ多个条件“的”条款
问题描述:
我有一个有多个条件对第LINQ多个条件“的”条款
SELECT *
FROM
CATALOGITEM with (nolock) INNER JOIN CATALOG with (nolock) ON
CATALOGITEM.catalog_id = CATALOG.catalog_id and not(catalog.catalog_id = 21) AND NOT(catalog.catalog_id = 20)
INNER JOIN PRODUCT with (nolock) ON
CATALOGITEM.s_num = PRODUCT .s_num
LEFT OUTER JOIN PRODUCT_DETAIL with (nolock) ON
PRODUCT_DETAIL.s_num = PRODUCT.s_num
WHERE
(
CATALOGITEM.publish_code = 'upd' OR
CATALOG_ITEM.publish_code = 'ins' OR
PRODUCT.publish_code = 'upd' OR
PRODUCT.publish_code = 'ins'
)
and
(CATALOG.unit_id = bu.unit_id)
如何在LINQ写这个查询。
请指教。
答
假设您缺少到PRODUCT表的连接?
无论如何,这应该让你开始。
var query = (from ci in db.catalogitem
join c in db.catalog on ci.catalog_id equals c.catalog_id
join p in db.products on ci.s_num equals p.s_num
join pd in db.productdetail on p.s_num equals pd.s_num into tempprods
from prods in tempprods.DefaultIfEmpty()
where !(c.catalog_id.Contains(21, 20))
&& (ci.publish_code.Contains('upd','ins')) ||
(p.publish_code.Contains('upd','ins'))
select ci)
将附加条件移到'where'。顺便说一句 – 2010-06-07 09:55:36
,最好使用SQL操作'IN':'.. WHERE CATALOGITEM.publish_code IN( 'UPD '插件')或PRODUCT.publish_code IN(' UPD”, '插件')' – abatishchev 2010-06-07 10:02:36