Jef*_*ume 0 c# sql-server entity-framework
我觉得这很简单,我只是想念它......
需要从这样的模型中一起对 FirstName 和 LastName 列进行快速而肮脏的文本搜索:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
样本数据:
FirstName LastName
-------------------------------
John Appleseed
John Anderson
Chris Cringle
George Washington
Run Code Online (Sandbox Code Playgroud)
后端是 SQL Server,使用 LINQ to Entities 和 Entity Framework 6,我需要查找全名,但这样的事情不起作用:
var results = from p in db.Persons
where (p.FirstName + ' ' + p.LastName).Contains(keyword)
select p;
Run Code Online (Sandbox Code Playgroud)
LINQ 不喜欢那样。这是一个自动完成方法;如果有人输入“john a”,我希望它能够找到“john a”的结果——它将是样本数据的前两行。
我该怎么做?
EF 只能连接字符串;它不能连接字符。如果是 LINQ to Objects,char它将被转换为字符串而不会出现任何问题,但 EF 不够健壮,无法做到这一点。尽管如此,修复还是很简单的。对空格使用文字字符串,而不是文字字符:
var results = from p in db.Persons
where (p.FirstName + " " + p.LastName).Contains(keyword)
select p;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |