Я создаю SqlQuery для поддержки экрана специальных запросов.
Я хочу что-то вроде этого:
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);
}
Моя проблема - прикрепление нескольких Where () не работает - это правильно?
Так что теперь я пишу это, но это довольно уродливо.
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);
}
Пожалуйста, скажите мне, что есть лучшая идиома для этого сценария. Спасибо!