我正在开发3层架构项目 我有多个DropDown列表来过滤使用LINQ从数据库中提取的数据。
现在我需要一种方法来过滤这些下拉列表,当我在任何下拉列表中选择一个项目时,它正在过滤,当我从两个下拉列表中选择要按这两个选项进行过滤等等...
我像这样使用linq:
var doctors = from d in db.Doctors
where d.CityID == id
&& d.HasSecretary == hasSec
&& d.OldSystem == oldSys
&& d.MetDoctor == metDoc
&& d.PriceProblem == priceProb
&& d.EasyToConvince == easyToCon
&& d.ComputerSavvy == comSav
&& d.Sold == sold
&& d.NotInterested == notIntr
&& d.FollowUp == followUp
&& d.NewClinic == newClin
&& d.RequestedADemo == reqDemo
select d;
只有当我选择所有下拉列表时才会过滤,而不是单独过滤。
请帮助:)
答案 0 :(得分:1)
你必须做条件where where子句,例如
var doctors = from d in db.Doctors;
if (id != null)
doctors = doctors.Where(d => d.CityID == id);
if (hasSec)
doctors = doctors.Where(d => d.HasSecretary == hasSec);
// other if statements
// results
var results = doctors.ToList();