【发布时间】:2014-05-06 09:31:50
【问题描述】:
有没有办法通过 EF 在数据库中找到类似的字符串? 当他尝试添加一个新问题时,我想向用户展示已经存在的问题(实现与堆栈溢出完全相同的功能“可能已经有你答案的问题”)。 并按相关性排序
【问题讨论】:
标签: c# entity-framework search
有没有办法通过 EF 在数据库中找到类似的字符串? 当他尝试添加一个新问题时,我想向用户展示已经存在的问题(实现与堆栈溢出完全相同的功能“可能已经有你答案的问题”)。 并按相关性排序
【问题讨论】:
标签: c# entity-framework search
你可以执行任意 sql 并取回实体框架对象。
using (var context = new myContext())
{
var myObject= context.myObject.SqlQuery("SELECT * FROM dbo.myObject where 'super duper where statement'").ToList();
}
而且你可以在你的 sql 语句中使用全文搜索和各种奇怪的机制。
查看answer 了解更多信息
【讨论】:
我相信 stackoverflow 目前正在使用流行的 elasticsearch 引擎来索引条目并提供此功能,尝试仅使用 EF(如果可能的话)实现它会非常麻烦。但是,您仍然可以使用普通的字符串方法(StartsWith、Contains 等)来提供一些复杂的搜索功能,而不是简单的字符串匹配。例如:
var searchResult = Context.Products.All(x => x.Name.Contains("searchTerm"));
【讨论】: