我一直试图确定为什么我的lambda表达式不起作用。它应该检查CHECK_STATUS_CD以查看是否有" 1"或者" 0"。但是,无论它进入if语句的值如何。下面是带有表达式的if语句。
using (DocumentEntities dbConnection = new DocumentEntities())
{
if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID))
{
if (dbConnection.CHECKs.Any(s => s.CHECK_STATUS_CD == "0"))
{
PotentialChecks.Check.Add(check);
}
}
else
{
PotentialChecks.Check.Add(check);
}
}
我试图比较CHECK_STATUS_CD和" 0"以多种方式,包括s.CHECK_STATUS_CD.Equals(" 0");但是,当任何值传递时,我会收到相同的结果。我应该如何编写我的lambda表达式,以便CHECK_STATUS_CD等于" 1"它会传递if语句吗?
由于
答案 0 :(得分:0)
如果CHECK_STATUS_CD
的类型为字符串,则不应存在问题,但需要查看CHECKs
类以便更清楚地了解。
如果CHECK_STATUS_CD
不属于string
类型,那么您可能需要考虑使用.Equals()
答案 1 :(得分:0)
为了解决这个问题,我们不得不修改第二个if语句。下面是用我们必须做的更新的同一段代码。
using (DocumentEntities dbConnection = new DocumentEntities())
{
if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID))
{
var currentCheck = dbConnection.CHECKs.Where(x => x.FUSION_CHECK_ID
== check.CheckID && x.CHECK_STATUS_CD ==
"0").FirstOrDefault();
if (currentCheck != null)
{
PotentialChecks.Check.Add(check);
}
}
else
{
PotentialChecks.Check.Add(check);
}
}