依赖注入和存储库模式中的实体计数

Entites count in dependency injection and Repository Pattern

作为标准,我们为 'N' 实体制作了 'N' 控制器。 假设我有两个实体,一个用于学生,一个用于课程,我必须添加学生和添加课程,如果我为 class 创建接口为 Student 做 crud 操作,另一个接口为 class 做课程的 crud 操作,我必须为课程和学生

的单独控制器传递 classes 的对象

如果我需要在我的学生控制器中实现 class 对象? 实际上我们并没有直接将 classes 分配给控制器中的接口 我们将它们绑定在 Ninject.common 文件中,其中我们描述了 A 接口使用 B class 和 C 接口使用 D class.

我应该在我的第一个控制器构造函数中使用两个参数吗? 我应该直接在我的第一个控制器中创建实现第二个接口的 class 对象吗? 如果你说我应该使用模型绑定,那么如何通过 class B 在我的第一个控制器中的绑定 class D 中添加数据?

答案是:视情况而定。

如果您的应用程序很小,在一个数据库中有两个实体,并且您在保存时做的转换或验证工作很少,我会说您应该只有一个存储库 class 来访问这两个实体。这最大限度地降低了复杂性。

但是,如果您每次保存实体时都需要做很多工作(数据清理、验证等),请使用单独的数据访问 classes,这反过来会调用一个存储库来实际处理保存并获取您的实体。

至于在哪里初始化,一律使用依赖注入,从来不直接实例化。遵循这条规则,直到它看起来很愚蠢,然后打破它。