实体框架4搜索组合字段

时间:2011-04-25 19:43:16

标签: linq entity-framework linq-to-entities

如何搜索两个组合字段。如果可能,搜索应该在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));

2 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:1)

您可以在数据库中使用计算列并映射它 e.g。

alter table Customer add FullName AS FirstName + ' ' + LastName

(我不知道)