2

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

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

+0

Это было бы так, как я бы пошел; если вам нужно было брать столбцы из определенных таблиц. Как правило, я создаю представление в базе данных (MSSQL, MySQL), если мне нужно получить доступ к этим данным много и соответствующий класс модели. – kamranicus

ответ

4

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

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

+0

Дзюдо, это то, что я спрашиваю. i.e Это хороший подход к работе, если вы хотите работать с данными, полученными из двух или более таблиц. ??? – RollerCosta

+0

Да, это хороший подход, на мой взгляд, независимо от количества таблиц. Количество данных таблицы извлекается из этого не имеет значения. – Judo