【发布时间】:2013-11-27 13:52:09
【问题描述】:
我有一些关于 MVC 模式和构建我的应用程序的一般性问题。在我的应用程序中,我将管理多个不相关的实体。在大多数情况下,一个实体可以是多个数据库表。
例如,应用程序可能管理 Persons 和 Fruit。 Person 和 Fruit 之间没有任何关系。
Persons 实体由多个表组成。
**Person**
PersonID
JobID
LocationID
**Job**
JobID
Name
**Location**
LocationID
Name
Fruit 实体(与 Person 完全无关)也由多个表组成。
**Fruit**
FruitID
ColorID
ShapeID
**Color**
ColorID
name
**Shape**
ShapeID
Name
所以在我的项目中,每个数据库表都有一个模型类。我为每个实体(FruitController 和 PersonController)都有一个控制器
所以这就是我的困惑出现的地方:
我应该为每个实体创建一个 DBContext 还是为整个项目创建一个 DBContext?
现在假设我为这个项目创建了一个迁移。创建一个迁移,在我的 Migrations 文件夹中给了我一个 configuration.cs 文件。打开该文件,有一个以 DBContext 作为参数的 Seed 方法。如果您对上一个问题的回答是为每个实体设置一个 DBContext,那么由于我将 DBContext 作为参数传入,我该如何为每个实体播种?
接下来是存储库。 我应该为每个实体创建一个存储库还是为每个表创建一个存储库?
我已经知道有大量示例展示了如何设置这些东西,但其中大多数只是展示了如何做事的基本部分。我想我正在寻找比基本示例更上一层楼的东西。
【问题讨论】:
-
您可以创建新标签。让你知道
-
不知道。我确实很难相信我是第一个提出 MVC5 问题的人,所以这让我觉得是其他人在创建标签。
-
人可以是水果,你知道的! :) 我一直应用的经验法则是为您要连接的每个数据库提供 1 个上下文。如果 Person 和 Fruit 对象存储在同一个 DB 中,则它是同一个上下文。
标签: entity-framework asp.net-mvc-4