LINQ - 在数据表上的条件

时间:2013-08-13 13:19:26

标签: c# sql linq

我已经阅读了一些有关条款和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;

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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