实体框架4搜索组合字段

B Z*_*B Z 6 linq linq-to-entities entity-framework

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

所以说我有一个名字和姓氏的客户表.我希望用户能够使用一个搜索框搜索这两列.

我的查询目前看起来像这样:

var query = DbContext.Customers
    .Where(c => c.FirstName.Contains(search) || c.LastName.Contains(search));
Run Code Online (Sandbox Code Playgroud)

但它应该是这样的

var query = DbContext.Customers
     .Where(c => c.FullName.Contains(search));
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 16

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

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

  • @Mvision:你不能在L2E中使用非映射属性. (2认同)