我需要添加And&&或相同的查询
这是我的代码
var predicate = PredicateBuilder.True<Summon>();
if (!string.IsNullOrEmpty(param.id))
{
predicate = predicate.And(m => m.id== param.id);
}
if (!string.IsNullOrEmpty(param.subjects))
{
var subjectsPredicate = PredicateBuilder.False<Summon>();
string[] subjects = param.subjects.Split(',');
for (int i = 0; i < subjects.Length; i++)
{
subjectsPredicate = subjectsPredicate.Or(m => m.SubjectId ==subjects[i]);
}
predicate = predicate.And(subjectsPredicate);
}
我的问题是,当主题存在时,我收到错误,所有其他查询都运行良好,只是这个“子查询”使查询失败。
答案 0 :(得分:0)
解决方案很简单 - 不在搜索查询上使用数组
subjects[i]
- 不起作用
而不是写
for (int i = 0; i < subjects.Length; i++)
{
subjectsPredicate = subjectsPredicate.Or(m => m.SubjectId ==subjects[i]);
}
Neet to write
foreach (string key in subjects)
{
subjectsPredicate = subjectsPredicate.Or(m => m.SubjectId == key);
}