Entity framework 使用LINQ和EF进行全文搜索

Entity framework 使用LINQ和EF进行全文搜索,entity-framework,full-text-search,Entity Framework,Full Text Search,我正在尝试使用EntityFramework实现全文搜索 MyDB有一个名为Users的表和一个名为UserInfoEntries的表。表users连接到其他一些表,表UserInfoEntries包含用户信息 当我想要获取用户信息时,我会遍历user.UserInfoEntries中的条目,并获取具有最早条目时间戳的条目 我想用作全文搜索键的属性是UserInfoEntry中的FullName属性 获取具有确切全名的用户的LINQ如下所示: from user in objectContext

我正在尝试使用EntityFramework实现全文搜索

MyDB有一个名为Users的表和一个名为UserInfoEntries的表。表users连接到其他一些表,表UserInfoEntries包含用户信息

当我想要获取用户信息时,我会遍历
user.UserInfoEntries
中的条目,并获取具有最早条目时间戳的条目

我想用作全文搜索键的属性是UserInfoEntry中的FullName属性

获取具有确切全名的用户的LINQ如下所示:

from user in objectContext.Users

let currentInfoEntry = 
(from entry in user.UserInfoEntries
 orderby entry.EntryTimestamp descending
 select entry
).FirstOrDefault()

where currentInfoEntry.FullName == "Some Name"

select new UserWithInfo
{
    User = user,
    Info = currentInfoEntry
}

我想使用全名全文搜索。有没有比将查询转换为SQL更简单的方法?

这不是全文搜索。这只是一个正常的搜索,完全匹配。您可以通过还原查询来简化查询:

var query = from x in objectContext.UserInfoEntries.Include("User")
            where x.FullName == "Some Name"
            orderby x.EntryTimestamp descending
            select x;

UserInfoEntry entry = query.FirstOrDefault();
User user = entry.User;

此查询要求您的
UserInfoEntry
实体具有名为
User
的导航属性,指向
User
实体。

很抱歉理解错误,但我想知道在这种情况下如何执行全文搜索。换句话说,如何使用FTS查找具有某个名称的用户。(例如,对于关键字matt,我希望获得所有名为matt、matthew和类似名称的用户)。