Анонимный тип с Linq to Entity (EF 4.1)?

Предположим, я хочу получить данные в анонимный объект (т. е. получить данные из двух или более таблиц и сохранить их в переменной) на каком-то этапе разработки моего приложения с помощью запроса Linq to Entity. Позже мне понадобится Razor View для доступа к этим извлеченным/анонимным данным. Что мне здесь делать?

Что я думаю, так это разработать другую ViewModel, которая содержит соответствующие свойства свойств анонимного типа, и создать представление/бритву, строго типизированную для этой ViewModel? Это правильный способ работы с анонимными типами в EF 4.1? то есть для каждого анонимного типа создайте ViewModel и сохраните полученные данные в его объекте.


person RollerCosta    schedule 09.01.2012    source источник
comment
Я бы так и поступил; если вам нужно было захватить столбцы из определенных таблиц. Обычно я создаю представление в базе данных (MSSQL, MySQL), если мне нужно часто обращаться к этим данным и соответствующему классу модели.   -  person kamranicus    schedule 09.01.2012


Ответы (1)


Анонимный тип не предназначен для использования вне области действия метода, поэтому обычно это просто одноразовые типы, которые будут использоваться только в этом методе.

Я бы предпочел загружать данные в обычный класс, а не в ViewModel, чтобы полностью отделить модель от представлений. Я бы использовал пользовательский класс для хранения извлеченных данных, а затем в контроллере заполнил ViewModel этим классом и получил бритвенное представление, строго типизированное для ViewModel. Это немного менее компактно, но лучше разделяет задачи.

person Judo    schedule 09.01.2012
comment
Дзюдо, вот что я спрашиваю. т.е. это хороший подход к работе, если вы хотите работать с данными, полученными из двух или более таблиц.??? - person RollerCosta; 09.01.2012
comment
Да, на мой взгляд, это хороший подход, независимо от количества таблиц. Количество таблиц, из которых извлекаются данные, не имеет значения. - person Judo; 09.01.2012