0

我想弄清楚这一点。

我有一门专业课叫做食物。

我有多个继承自 Food 的类:Pizza、Sandwich、Meals 等...

我使用代码优先方法创建了数据库。该数据库有披萨、三明治和餐食的表格。

现在在我的主页上,我需要显示我拥有的每种食物的前 5 名,但我不想创建一个名为 foods 的表。那么我如何获取前 5 种食物的列表(我无法从我的 DBSet 类中访问 foods.ToList(),因为这将导致我为其创建一个数据库表,但我仍然如何将所有这些值转换为多个Class Foods 的对象。然后将它们传递给我的 C# 代码中的视图?

在我获得前 5 名比萨饼、前 5 名三明治、前 5 名膳食的所有这些值后,我将需要将它们传递给渲染模型“食物”并显示这些类之间共有的属性的局部视图(即仅那些在食物中的那些,而不是比萨饼或膳食中单一的特殊特性)等等......

这很重要,因为我试图理解 mvc 如何工作的概念,这与创建一个 2 类模型并创建一个接受这个模型的视图不同,正如我在所有帖子中看到的那样,比萨饼和三明治在线的。

4

1 回答 1

0

这个案例似乎是使用存储库模式的绝佳机会。使用这种模式,您可以创建一个名为“FoodRepository”的类,该类可以从您的 DbSet 中读取特定表,将它们包装在父“Food”类中,并将它们作为列表返回。该存储库将包含执行“前 5 种食物”之类的所有逻辑。控制器将调用此存储库,并在视图模型中返回此列表。然后,视图会将其传递给一个局部视图,该视图被强类型化为 IEnumerable,并负责显示该列表。

这是一个很好的教程,介绍如何开始使用 EF Code First 的存储库模式

于 2013-02-18T20:04:06.053 回答