使用 linq 过滤搜索

Dr.*_*izz 0 c# linq database search filter

我正在尝试使用 Linq 从搜索用户控件中查询数据库。

我有一个使用用户输入搜索数据库的 Linq 查询。

这是我目前使用的代码:

var query = from invite in db.invites
            where invite.Division == userInput.Division.Text &&
                  invite.Status == userInput.Status.Text
            select invite;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果其中一个是空的,我不需要将它考虑到搜索过滤器中。考虑到我有很多过滤器而不仅仅是状态和部门,有没有办法正确地做到这一点?

Ser*_*rvy 5

由于延迟执行,您可以有条件地分段构建查询。

var query = db.invites.AsQueryable();

if(!string.IsNullOrEmpty(userInput.Division.Text))
    query = query.Where(invite => invite.Division == userInput.Division.Text);

if(!string.IsNullOrEmpty(userInput.Status.Text))
    query = query.Where(invite => invite.Status== userInput.Status.Text);
Run Code Online (Sandbox Code Playgroud)