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 回答