我有以下lamba查詢似乎總是返回所有記錄,即使當int?狀態pamameter不爲空且有效。任何人都知道爲什麼Enum過濾器不被尊重? 感謝您的閱讀!Enum的Lambda查詢過濾器
public ActionResult GetArrivals(int facilityId, int? status)
{
var registrationList = db.Registrations
.Where(f => f.Facility.Id == facilityId)
.Where(a => a.ArrivalDateTime >= DateTime.Today)
.OrderBy(ln => ln.User.LastName)
.OrderBy(fn => fn.User.FirstName);
if (status.HasValue)
{
UrgentCareWaitWeb.Models.RegistrationStatus statusValue;
if (Enum.TryParse(status.Value.ToString(), out statusValue) == true)
{
registrationList
.Where(s => s.Status == statusValue);
}
}
// Project query to view
var pview = registrationList.Select(r => new PatientRegistrationsView()
{
ArrivalId = r.Id,
UserId = r.User.UserId,
UserName = r.User.UserName,
FirstName = r.User.FirstName,
LastName = r.User.LastName,
PrimaryPhone = r.User.PrimaryPhone,
SecondaryPhone = r.User.SecondaryPhone,
ArrivalDateTime = r.ArrivalDateTime,
PatientDataformId = r.PatientDataformId,
RegistrationStatus = r.Status,
});
//if (Request.IsAjaxRequest())
// return PartialView("_PatientRegistrations", model);
return View(pview);
}
非常感謝迴應。我用你發佈的那個代碼替換了那個代碼,但是它不能編譯。無法將類型'System.Linq.IQueryable'隱式轉換爲'System.Linq.IOrderedQueryable '。存在明確的轉換(您是否缺少演員?) –
ChiliYago
2013-03-08 22:25:07
啊 - 已更新的答案。 – eouw0o83hf 2013-03-08 22:30:04
這可能工作,但我從另一篇文章中發現,用明確的IQueryable registrationList替換「var」聲明並應用你的代碼它工作正常。非常感謝! –
ChiliYago
2013-03-08 22:38:53