Приведение результата функции LINQ к объекту домена

У меня есть табличная функция для выполнения полнотекстового поиска на сервере SQL.

Тип результата моей функции полнотекстового поиска в LINQ — это специальный автоматически сгенерированный тип, который включает KEY и RANK в дополнение к моим обычным свойствам объекта домена.

Итак, если мой обычный объект домена — PERSONS (со свойствами FirstName, LastName и т. д.), у меня также есть объект результата PERSONS_FTSResult с теми же свойствами + KEY и RANK.

Есть ли простой способ вернуть его обратно в PERSONS?


person Alex    schedule 24.05.2010    source источник
comment
Просто любопытно, почему бы вам просто не выбрать ЧЕЛОВЕКА из результата вашего запроса, т.е. ‹Linq query›, а затем выбрать нового ЧЕЛОВЕКА {//assignproperties};   -  person Ta01    schedule 24.05.2010
comment
Можете ли вы дать мне пример кода, пожалуйста?   -  person Alex    schedule 24.05.2010
comment
Робатикус опубликовал мое намерение, вы по существу выбираете новый анонимный тип.   -  person Ta01    schedule 24.05.2010


Ответы (1)


Не могли бы вы сделать что-то вроде этого:

var x = from data in searchResults
        select new {
            key = data.Key,
            rank = data.Rank,
            person = new Person { firstName = data.FirstName }
                    };

Person p = x.First().person;

Прошу прощения, если синтаксис немного неправильный, но я сейчас играю в Eve Online, а не программирую.

:)

person Robaticus    schedule 24.05.2010
comment
Извините, я не могу понять это. Можете ли вы проверить этот код, пожалуйста? - person Alex; 24.05.2010
comment
Вы сказали, что результаты поиска будут содержать все члены Person, а также Key и Rank. Приведенный выше LINQ выбирает новый анонимный тип, состоящий из всех данных, и соответствующим образом инициализирует его. Первые две вещи, которые он помещает в тип, это ключ и ранг. Затем он создает новый экземпляр Person и инициализирует его результирующим набором. Глядя на это, я заметил одну проблему: в правой части задания должны быть добавлены данные слова. Я отредактирую. - person Robaticus; 24.05.2010