0

Я пытаюсь понять это.MVC 4: передача одиночных унаследованных моделей в основную модель на частичный вид

У меня есть большой класс под названием Foods.

У меня есть несколько классов, которые наследуют от пищевых продуктов: пицца, бутерброды, питание и т.д. ...

Я создал базу данных с помощью кода Первого подхода. В базе данных есть таблицы для пиццы, сэндвича и блюд.

Теперь, на моей домашней странице, мне нужно отображать пятерку каждой из продуктов, которые у меня есть, но я не хочу создавать таблицу с названием продуктов. Итак, как мне получить список из 5 лучших продуктов (у меня нет доступа к foods.ToList() из моего класса DBSet, так как это приведет к созданию таблицы базы данных для него, тем не менее, как я могу получить все эти значения в несколько объекты класса Foods , а затем передать их на вид в моем коде C#?

После того, как я получу все эти значения из 5 лучших пицц, 5 лучших санифов, 5 лучших блюд, затем пройдите, чтобы передать их частичный вид, который отображает модель «продукты» и отображает свойства, которые являются общими между этими классами (то есть только те, которые находятся в пищевых продуктах, а не особые свойства отдельных продуктов в пицце или еде) и т. д.

Это важно, поскольку я пытаюсь понять концепцию работы mvc, и это отличается от fr om создавая класс из 2 моделей и создавая представление, которое принимает эту модель, которая позволяет говорить пиццу и сэндвичи вместе, как я вижу во всех сообщениях в Интернете.

ответ

0

Этот случай представляет собой отличную возможность использовать Repository Pattern. С помощью этого шаблона вы можете создать класс под названием «FoodRepository», который может читать ваши DbSets для определенных таблиц, обернуть их в родительский класс «Пища» и вернуть их в виде списка. Этот репозиторий будет содержать всю логику для выполнения таких вещей, как «Top 5 Food». Контроллер выполнит вызов в этот репозиторий и вернет этот список в Model View. Затем представление передаст это частичному представлению, которое строго типизировано для IEnumerable и будет отвечать за отображение этого списка.

Вот отличный учебник по началу работы using the Repository Pattern with EF Code First.