LINQ-数据表上的条件where



我读过一些关于条件where子句和Linq的文章。我相信我已经正确地实现了这一点,但当我使用Linq时,查询返回0条记录。然而,当我使用Linq语句的SQL对应项时,它会返回3条记录。本质上,我想做的是添加一个额外的where语句,该语句提供的"sItemID"不是null或空的。

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;

您使用的是((string.IsNullOrEmpty(sItemID)) ||;如果sItemID为null或为空,则返回TRUE。请改用!((string.IsNullOrEmpty(sItemID)) ||——注意前面的!

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

最新更新