我已经阅读了一些有关条款和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;
答案 0 :(得分:1)
您正在使用((string.IsNullOrEmpty(sItemID)) ||
;如果sItemID 为null或为空,则返回TRUE。请尝试!((string.IsNullOrEmpty(sItemID)) ||
- 注意前导 !
。
答案 1 :(得分:0)
原来它根本不是LINQ查询。数据表每5分钟刷新一次来自数据库的新数据。在用新数据实际更新表之前,我只是在查询表中的新数据。直到我的第二杯咖啡,我意识到我已经编写了代码才能做到这一点。谢谢大家的帮助。