构建ASP.NET MVC(实体框架)应用程序

时间:2013-11-27 13:52:09

标签: entity-framework asp.net-mvc-4

我对MVC模式和构建我的应用程序有一些一般性问题。在我的应用程序中,我将管理多个不相关的实体。在大多数情况下,实体可以是多个数据库表。

例如,应用程序可能管理人员和水果。人与水果之间没有任何关系。

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还是为整个项目提供1个DBContext?

现在假设我为这个项目创建了一个迁移。创建迁移,在我的Migrations文件夹中为我提供了configuration.cs文件。打开该文件,有一个Seed方法,它将DBContext作为参数。如果您对上一个问题的回答是为每个实体都有一个DBContext,那么我如何为每个实体设定种子,因为我将DBContext作为参数传递?

接下来是存储库。 我应该为每个实体设置一个存储库,还是为每个表设置一个存储库?

我已经知道有很多例子展示了如何设置这些东西,但大多数只展示了如何做事的基本部分。我想我正在从基本的例子中拍摄下一级别的东西。

1 个答案:

答案 0 :(得分:0)

我建议对两个实体使用相同的DBContext文件,如果使用2,则更难以使数据库与模型保持同步。这也解决了多个种子文件的问题。

然后你应该为每个实体创建一个不同的存储库(所以1为Fruit,1为Persons)。他们都会在构造函数中注入相同的DBContext。

当然这不是一成不变的,你应该使用对你来说最有意义的方法。