【发布时间】:2015-12-02 11:03:43
【问题描述】:
我正在编写一个用于搜索的 sql 查询,其中用户根据 FirstName 和 LastName 进行搜索。搜索 FirstName 或 LastName 时查询工作正常,但是当我搜索 FirstName 和 LastName(即 FirstName 和 LastName 之间的空格)时,它给出了空白结果。查询字符串如下所示:http://localhost:4562/api/User/Search?q=sumedha%20v&filters=&offset=3&limit=9
sql查询为:List<AppUser> searchedAppUsers = await _context.AppUser.Where(u => u.Profile.FirstName.StartsWith(q) || u.Profile.LastName.StartsWith(q)).ToListAsync();
我尝试使用Contains() 而不是StartsWith(),但它仍然给出空白结果。我也尝试使用SqlMethods.Like(),但在智能感知中看不到它。我尝试使用SqlFunctions.PatIndex(),但同样的问题。我试图关注this 的帖子,但不知道该怎么做。
还有其他方法吗?还是我哪里出错了?
【问题讨论】:
-
尝试使用这个查询:
var searchedAppUsers = await _context.AppUser.Where(u => u.Profile.FirstName.ToLowerCase().Contains(q.ToLowerCase()) || u.Profile.FirstName.ToLowerCase().Contains(q.ToLowerCase())).ToListAsync();。也许你有不同情况下的查询和数据。
标签: c# sql lambda entity-framework-4