0

我已经阅读了一些关于条件 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;
4

2 回答 2

1

你正在使用((string.IsNullOrEmpty(sItemID)) ||; 如果 sItemID空或为空,则返回 TRUE。改为尝试!((string.IsNullOrEmpty(sItemID)) ||- 注意前导!.

于 2013-08-13T13:25:38.117 回答
0

原来它根本不是 LINQ 查询。数据表每 5 分钟用数据库中的新数据刷新一次。在实际使用新数据更新表之前,我只是在表中查询新数据。直到我喝了第二杯咖啡,我才意识到我已经编写了代码来做到这一点。谢谢大家的帮助。

于 2013-08-13T13:43:38.183 回答