我试图解决这个问题。
我有一个名为Foods的大班。
我有多个继承自食物的课程:比萨饼,三明治,餐食等......
我使用Code First Approach创建了数据库。该数据库有比萨饼,三明治和餐点表。
现在在我的主页上,我需要显示我所拥有的每种食物的前五名,但我不想创建一个叫做食物的食物。那么我如何获得前5种食物的列表(我无法访问来自我的DBSet类的foods.ToList(),因为这将导致我为它创建一个数据库表,仍然如何将所有这些值变为多个食品类的对象。 然后将它们传递给我的C#代码中的视图?
在我获得前5个比萨饼,前5个三明治,前5餐的所有这些价值后,我然后需要将它们传递给部分视图,该模型呈现模型“食物”并显示这些类之间常见的属性(即只有食物中的食物,而不是比萨饼或餐食中的单一特产)等......
这很重要,因为我试图理解mvc如何工作的概念,这不同于创建一个2个模型的类,并创建一个接受这个模型的视图,可以让披萨和三明治在一起,如我所见所有在线帖子。
答案 0 :(得分:0)
此案例似乎是使用Repository Pattern的绝佳机会。使用此模式,您可以创建一个名为“FoodRepository”的类,该类可以从DbSets读取特定表,将它们包装在父“Food”类中,并将它们作为列表返回。该存储库将包含诸如“Top 5 Food”之类的所有逻辑。控制器将调用此存储库,并在视图模型中返回此List。然后,View会将其传递给强类型为IEnumerable的部分视图,并负责显示该列表。
这是一个很棒的入门教程using the Repository Pattern with EF Code First。