0
Я создаю SqlQuery для поддержки экрана специальных запросов.SubSonic 2.1 SqlQuery multiple Где() s?
Я хочу что-то вроде этого:
SqlQuery q = new Select().From<VwInstitutes>();
if (!string.IsNullOrEmpty(username))
{
q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
}
if (!string.IsNullOrEmpty(stage))
{
q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage);
}
Моя проблема - присоединив несколько Где() s не похоже на работу - это правильно?
Итак, теперь я пишу это, но это довольно уродливо.
if (!string.IsNullOrEmpty(username))
{
if (q.HasWhere) q.And(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
else q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
}
if (!string.IsNullOrEmpty(stage))
{
if (q.HasWhere) q.And(VwInstitutes.Columns.Stage).IsEqualTo(stage);
else q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage);
}
Скажите, пожалуйста, что для этого сценария лучше идиомы. Благодаря!
thanks ranomore. Да, я забыл этот старый трюк. Я думаю, что это тоже немного уродливо - в том смысле, что это не способствует семантике запроса, но это МЕНЬШЕ уродливо, чем то, как я это делал. Как плакат в теме, с которой вы связались, интересно, что случилось с AddWhere() .... – 2009-04-29 15:29:27