c# – 具有多个搜索条件的笨重的LINQ语句

c# – 具有多个搜索条件的笨重的LINQ语句,第1张

概述我有一个具有多个搜索条件的表单,用户可以使用该表单来搜索员工数据,例如FirstName,LastName,HireDate,Department等 我正在使用LINQ,我想知道在给定任何搜索条件的情况下,我可以使用什么方法来查询Employes集合,即用户不必输入all,但他们必须至少输入一个搜索参数. 到目前为止,在测试我的LINQ语句时,有两个搜索参数,似乎我必须查看是否输入了搜索参数. 如 我有一个具有多个搜索条件的表单,用户可以使用该表单来搜索员工数据,例如Firstname,Lastname,HireDate,Department等

我正在使用liNQ,我想知道在给定任何搜索条件的情况下,我可以使用什么方法来查询Employes集合,即用户不必输入all,但他们必须至少输入一个搜索参数.

到目前为止,在测试我的liNQ语句时,有两个搜索参数,似乎我必须查看是否输入了搜索参数.
如果是这种情况,那么对于许多搜索参数来说这可能变得非常笨重.

// only Firstname is enteredif (!string.IsNullOrEmpty(Firstname) && string.IsNullOrEmpty(Lastname)){    var employees = DB.Employees        .Where(emp => emp.Firstname.Contains(fname));}// only Lastname is enteredelse if (string.IsNullOrEmpty(Firstname) && !string.IsNullOrEmpty(Lastname)){    var employees = DB.Employees        .Where(emp => emp.Lastname.Contains(lname));}// both parameters are enteredelse if (!string.IsNullOrEmpty(Firstname) && !string.IsNullOrEmpty(Lastname)){    var employees = DB.Employees        .Where(emp => emp.Firstname.Contains(fname))        .Where(emp => emp.Lastname.Contains(lname));}

仅供参考,我最初认为我可以使用相关的搜索参数将Where()语句附加到我的liNQ语句中,但我注意到并非所有记录都应该返回,因此if-then语句的上述逻辑也是如此.

解决方法 这样的事情怎么样:
Iqueryable<Employee> employees = DB.Employees;if (!string.IsNullOrEmpty(Firstname)){    employees = employees         .Where(emp => emp.Firstname.Contains(fname));}if (!string.IsNullOrEmpty(Lastname)){    employees = employees         .Where(emp => emp.Last.Contains(lname));}
总结

以上是内存溢出为你收集整理的c# – 具有多个搜索条件的笨重的LINQ语句全部内容,希望文章能够帮你解决c# – 具有多个搜索条件的笨重的LINQ语句所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1249140.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存