используя полнотекстовый поиск с LINQ и EF - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь реализовать полнотекстовый поиск с EntityFramework.

Моя БД имеет таблицу с именем Users и таблицу с именем UserInfoEntries. Таблица users связана с некоторыми другими таблицами, а таблица UserInfoEntries содержит информацию о пользователе.

Когда я хочу получить информацию о пользователе, я просматриваю записи в User.UserInfoEntries и получаю запись с самой старой отметкой времени входа.

Свойство, которое я хочу использовать в качестве ключа для полнотекстового поиска, является свойством FullName в UserInfoEntry.

LINQ для получения пользователей с точным FullName выглядит следующим образом:

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
}

Я бы хотел использовать полнотекстовый поиск по FullName. Есть ли более простой способ, чем перевод запроса в SQL?

1 Ответ

0 голосов
/ 20 октября 2011

Это не полнотекстовый поиск. Это просто обычный поиск с полным соответствием. Вы можете упростить запрос, вернув его:

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 сущность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...