我在asp页面上有6个文本框和一个搜索按钮。用户可以通过在任何搜索框中输入文本进行搜索。我正在使用Linq查询我的sql server数据库,我可以编写查询。但问题是因为有很多文本框我必须编写很多查询。 例如:用户可以通过在所有6个文本框或5个文本框或4或3或2或1中输入数据进行搜索。您可以查看我必须编写多少查询。有没有办法编码这类问题,或者我应该只编码所有可能的组合。
谢谢
答案 0 :(得分:3)
一般情况下,当我像你一样进行过滤时,我只是进行空检查。
public List<TABLE> Filters(string a, string b, string c ...){
var query = (from x in context.TABLE
where
(string.IsNullOrEmpty(a) || x.A ==a) &&
(string.IsNullOrEmpty(b) || x.B ==b) &&
(string.IsNullOrEmpty(c) || x.C ==b)
select x
);
return query.ToList();
}
加入
var baseQuery = (from x in context.TABLE
where
(string.IsNullOrEmpty(a) || x.A ==a) &&
select x
);
if(!string.IsNullOrEmpty(b)){
baseQuery = (
from item in baseQuery
join b in context.Bs on item.JoinMeCode equals b.JoinMeCode
select item
);
}