如何在两个组合字段中进行搜索。如果可能,搜索应在SQL端进行。

假设我有一个包含名字和姓氏的客户表。我希望用户能够使用单个搜索框在这两列上进行搜索。

我的查询当前如下所示:

var query = DbContext.Customers
    .Where(c => c.FirstName.Contains(search) || c.LastName.Contains(search));

但应该是这样的
var query = DbContext.Customers
     .Where(c => c.FullName.Contains(search));

最佳答案

除非您还映射了FullName列,否则这是不可能的。解决此问题的方法可以是Linq-to-entities中允许的String.Concat:

var query = DbContext.Customers
                     .Where(p => String.Concat(p.FirstName, " ", p.LastName)
                                       .Contains(search));

10-07 13:12
查看更多