实体框架找到类似的字符串

时间:2014-03-27 12:06:43

标签: c# entity-framework search

有没有办法如何通过EF在数据库中找到类似的字符串? 我想向用户显示已经存在的问题,当他尝试添加一个新问题时(在堆栈溢出时实现完全相同的功能"可能已经有你的答案的问题")。 并按相关性排序

2 个答案:

答案 0 :(得分:1)

你可以执行任何仲裁sql并获取实体框架对象。

using (var context = new myContext()) 
{ 
    var myObject= context.myObject.SqlQuery("SELECT * FROM dbo.myObject where 'super duper where statement'").ToList(); 
}

您可以在sql语句中使用全文搜索和各种奇怪的机制。

请查看此answer了解更多信息

答案 1 :(得分:0)

我相信stackoverflow目前正在使用流行的elasticsearch引擎来索引条目并提供此功能,尝试使用EF(如果可能的话)实现这一点将非常麻烦。但是,除了字符串的简单匹配之外,您仍然可以使用常规字符串方法(StartsWith,Contains等)来提供一些有些复杂的搜索功能。例如:

var searchResult = Context.Products.All(x => x.Name.Contains("searchTerm"));