【发布时间】:2017-03-14 01:20:49
【问题描述】:
我有一张这样的桌子:
ID | FirstName | LastName |
---------------------------
1 | Kathy | Gray |
然后我有一个搜索框,它将提供一个字符串。该字符串可以是用户的名字、姓氏、both 名字和姓氏,由空格分隔。部分匹配也应该有效。例如“凯丝格拉”。
使用实体框架 lambda 表达式,我如何使用给定的字符串在数据库中搜索上述条件?
这是一个现有的应用程序,这是当前编写的过滤器:
var students = Students.Where(e => e.FirstName.Contains(searchString) ||
e.LastName.Contains(searchString);
明显的问题是“Kathy Gray”本身并不存在于任一列中。通常,我会创建一个带有FullName 字段的新模型并对其进行搜索,但在这种特殊情况下,这样的修改会很困难。
谢谢!
编辑:代码是从原始简化的,但我留下了一个令人困惑的变量名。固定。
【问题讨论】:
-
您是否尝试过将其分配给一个新变量
var enrollment enrollments.Where(e => e.FirstName.Contains(searchString) || e.LastName.Contains(searchString);来运行它,注册定义在哪里......? -
如果您还想搜索“Gray Kathy”,您应该拆分字符串并单独搜索。