ユーザーに4つの検索フィールドが提供されるページがあります。フィールドの交点を取り、結果を表示することを想定しています。ただし、ユーザーはすべてのフィールドに入力する必要はありません。
私のコントローラーには次のコードがあります。
string subject = (string)Session[d.sessionSearchSubject];
string courseNumber = (string)Session[d.sessionSearchCourseNum];
string yearLev = (string)Session[d.sessionSearchYearLev];
string period = (string)Session[d.sessionSearchPer];
if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("") && period.Equals("")))
{
db.Courses.Where(a => a.subject.Equals(subject) && a.coursenumber.Equals(courseNumber) && a.period.Equals(period...
}
else if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && courseNumber.Equals("") && period.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && yearLev.Equals("") && period.Equals("")))
...
ご覧のとおり、ifステートメントはたくさんあります。これを行うためのより良い方法があるかどうか疑問に思いましたか?つまり、フィールドが空の場合にフィールドを無視する単一のクエリステートメント。または、空の文字列を「any」と同等の文字列に置き換えることができる場合は???