我正在将过滤器模型传递给我的服务。用户可以选择any
null
或空字符串。如何设置一次.Where
查询,该查询将忽略该过滤器?
一个例子:
public class UserFilterModel
{
public string State {get; set;};
public string Age {get; set;};
}
过滤器:(如何使其更符合我的需求?)
var result = context.Users.Where(u => u.State == filter.State && u.Age == filter.Age);
因此,如果用户为State
选择null或为空,那么当我实际想要忽略该过滤器时,这将返回具有空状态或空状态的记录。
另外,我正在使用asp.net mvc 2,如果我做错了什么,请告诉我。使用存储库模式。
答案 0 :(得分:1)
这是一种方式:
var result = context.Users.Where(
u => (String.IsNullOrEmpty(filter.State) || u.State == filter.State) &&
(String.IsNullOrEmpty(filter.Age) || u.Age == filter.Age)
);