我有这一行:
SubCategoryName
哪个没问题,直到没有var t = products.Where(p => p.Brand.Equals(s) ||
p.CatCodeNaam.Equals(s))
.Where(p => !string.IsNullOrWhiteSpace(p.SubCategoryName) && p.SubCategoryName.Equals(s));
。
所以我试过了:
SubCategoryName
但是如果没有isnull(SubCategoryName,'') as SubCategoryName
,它应该忽略它并且不过滤所以没有空集合。
我知道我可以通过让数据库返回空字符串"car", "ford", "focus"
来修复它,但我不希望这样。我正在寻找一个LINQ修复程序。
一些测试数据可以解释我的问题:
我有一个包含以下关键字的数组:
foreach
我用products
迭代关键字数组。
由于我不知道关键字是品牌,类别还是子类别,我必须检查它是否是其中之一。但是数据集replace('\n', '')
中的对象在子类别中具有空值,导致第一行崩溃。
答案 0 :(得分:3)
扭转条件:
s.Equals(p.SubCategoryName)
如果p.SubCategoryName
为空,那么无关紧要。
答案 1 :(得分:1)
如果我没有正确理解,我很抱歉,但不会这样做:
products = products.Where(p => p.Brand.Equals(s) ||
p.CatCodeNaam.Equals(s) ||
p.SubCategoryName == null ||
p.SubCategoryName.Equals(s)).ToList();