[英]Using String.Contains() across multiple columns in EF6 model
我觉得这很简单,我只是想念它...
需要像这样的模型一起对FirstName和LastName列进行快速而肮脏的文本搜索:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
样本数据:
FirstName LastName
-------------------------------
John Appleseed
John Anderson
Chris Cringle
George Washington
后端是SQL Server,使用LINQ to Entities和Entity Framework 6,我需要对全名进行查找,但这样的操作将不起作用:
var results = from p in db.Persons
where (p.FirstName + ' ' + p.LastName).Contains(keyword)
select p;
LINQ不喜欢那样。 这是一种自动完成方法; 我希望它能够找到有人输入的“ john a”的结果-那将是示例数据的前两行。
我该怎么做?
EF只能连接字符串。 它不能连接字符。 如果是LINQ to Objects,则char
可以毫无问题地转换为字符串,但是EF不够强大。 该修复程序非常简单。 在空格处使用文字字符串 ,而不是文字字符:
var results = from p in db.Persons
where (p.FirstName + " " + p.LastName).Contains(keyword)
select p;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.