私はMVCアプリケーションにLINQクエリを書き込んで、ユーザーが複数のフィールドを同時に居住情報を検索できるようにしようとしています。複数の列でのLINQのマッチング
ここに私が達成しようとしているものの例があります。
ユーザーから検索する3つのテキストボックスがあります:私たちは私たちのテーブルに、次のしているとしましょう
@using (Html.BeginForm("Index", "Voters", FormMethod.Get))
{
<p>
Last Name: @Html.TextBox("voterSearchModel.LastNameSearch", !String.IsNullOrEmpty(voterSearchModel.FirstNameSearch) ? voterSearchModel.FirstNameSearch : "")
First Name: @Html.TextBox("voterSearchModel.FirstNameSearch", !String.IsNullOrEmpty(voterSearchModel.LastNameSearch) ? voterSearchModel.LastNameSearch : "")
Address: @Html.TextBox("voterSearchModel.Address", !String.IsNullOrEmpty(voterSearchModel.LastNameSearch) ? voterSearchModel.AddressSearch : "")
</p>
<input type="submit" value="Search" />
}
を:
---------------------------------------------------------------
|FirstName | LastName | Address |
|Bob | Doe | 123 Sesame St. |
|Joe | Doe | 123 Sesame St. |
|Cookie | Monster | 111 FooBar Lane|
|Bob | Magoo | 321 Street Ave.|
|Mark | McAllister | 213 Duckie Ave.|
|Joe | Doe | 18 Sunset Blvd |
私のLINQクエリは、今のようなある:
voters = voters.Where(voter => (voterSearchModel.LastNameSearch != null && voter.Last_Name.Contains(voterSearchModel.LastNameSearch))
|| (voterSearchModel.FirstNameSearch != null && voter.First_Name.Contains(voterSearchModel.FirstNameSearch)
|| (voterSearchModel.AddressSearch != null && voter.StreetNameComplete.Contains(voterSearchModel.AddressSearch)));
「Joe」の姓:「Doe」を検索すると、都市内のJoe Doesをすべて検索できます。クエリは、今すぐすべての "ジョー"と "Doe"のすべてを返します。
「Joe Does」のみを返すためには、何をする必要がありますか?