我已经阅读了一些关于条件 where 子句和 Linq 的帖子。我相信我已经正确实现了这一点,但是当我使用 Linq 时,查询返回 0 条记录。但是,当我使用 Linq 语句的 SQL 对应项时,它返回 3 条记录。本质上,我想做的是添加一个额外的 where 语句,提供的“sItemID”不为空或为空。
from dr in _openOrders.AsEnumerable()
where dr.Field<Guid>("CatalogID") == Guid.Parse(sCatalogID)
&& dr.Field<Guid>("LocationID") == Guid.Parse(sLocationID)
&& ((string.IsNullOrEmpty(sItemID)) || dr.Field<Guid>("ItemID") == Guid.Parse(sItemID))
select dr;