0
私は、アドホック・クエリ画面をサポートするためにSqlQueryを構築しています。私はこのような何かしたいSubSonic 2.1 SqlQuery multiple Where()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。うん、私は古いSQLのトリックを忘れてしまった。私はそれもクエリのセマンティクスには貢献していないという点で少し醜いと思うが、それは私のやり方よりも醜いものだ。あなたがリンクしているスレッドのポスターのように、私はAddWhere()に何が起こったのだろうか.... –