有没有更好的方法来实现我的搜索“任何”或“全部”

时间:2012-05-21 01:02:58

标签: asp.net-mvc-3 search

我有以下操作方法来构建下拉列表,该列表用于搜索具有特定国家/地区的记录。除了显示所有国家/地区的列表外,我还添加了一个名为-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-添加到我的搜索下拉列表中,或者我的方法听起来不错?

1 个答案:

答案 0 :(得分: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子句来构建查询。