我遇到一些问题,试图生活在一个亚音阶世界,并且在亚音速表达方面成为一个亚音阶女孩......
在阅读Subsonic Query (ConditionA OR ConditionB) AND ConditionC之后,看来我不是唯一一个有这类问题的人,但希望有人(全能抢劫者)可以回答这个问题。
我正在尝试根据循环条件在查询中创建表达式。我想要实现的(在伪代码中)是这样的:
objQuery.andexpressionstart();
foreach (condition in conditions){
if (condition){
objQuery.and(conditionColumn).isequalto(X);
}
}
objQuery.expressionstop();
我的主要问题是表达式中的每个条件都是不同的列 - 否则我只能使用.In()。我在外面也有额外的搜索条件(读了一下),所以它不能在表达之外。
我真的不想留下强烈型亚音子宫的温暖,但我认为在这种情况下我可能也有...如果我必须有一种方法来添加亚音速查询手动键入条件,所以我不必更改查询中的所有其他代码(现在很多生活在亚音速土地的商业逻辑)
一如既往,感谢您的帮助 欢呼声
答案 0 :(得分:3)
我现在没有时间对此进行测试,但我认为如果您执行以下操作应该有效:
bool isFirstCondition = true;
foreach (condition in conditions){
if (condition)
{
if(isFirstCondition)
{
objQuery.AndExpression(conditionColumn).isequalto(X);
isFirstCondition = false;
}
else
{
objQuery.and(conditionColumn).isequalto(X);
}
}
}
确保在循环之前添加了所有其他条件。