1

特定の国を持つレコードを検索するために使用されるドロップダウン リストを作成する次のアクション メソッドがあります。すべての国のリストを表示するだけでなく、以下に示すように、国に関係なくすべてのレコードを返す –Any— という名前の静的な値を追加しました。

public PartialViewResult ManageVisitSearch()
        {   var CountryList = repository.FindAllCountry().ToList();
            CountryList.Insert(0, new Country { Description = "--Any--", CountryID = 0 });
//code goes here
        ViewBag.CountryID = new SelectList(CountryList, "CountryID", "Description", 0);
        return PartialView("_ManageVisitSearch"); }

検索を実行するリポジトリ メソッドでは、ドロップダウン リストから –Any– が選択された場合にすべてのレコードを返すために次のことを行いました。

    public IEnumerable<VisitSearch> visitsearch(DateTime? datefrom, DateTime? dateto, int countryid, int genderid)
            {
 var vs = (from v in entities.Visits  where 
(v.Patient.NationalityID == countryid || countryid == 0) 

//code goes here

上記のアプローチは私にはうまく機能していますが、従うべき最善のアプローチではないかもしれないと思います. –Any– を検索ドロップダウン リストに追加するために従うべきより合理的なアプローチはありますか、それとも私のアプローチは適切でしょうか?

4

1 に答える 1

0
 public IEnumerable<VisitSearch> visitsearch(DateTime? datefrom, DateTime? dateto, int? countryid, int genderid)
 {
     var vs = entities.Visits;

     if(countryid.HasValue)
         vs = vs.Where(v.Patient.NationalityID == countryid.Value);

     return vs;
 }

いくつかの条件に基づいて where 句を追加することで、クエリを作成できます。

于 2012-05-21T01:41:51.220 に答える