我正试图围绕IoC容器包装头部。随着我深入探究这种设计模式,在我简单地实例化一个数据上下文类之前,我会遇到许多抽象层,接口和具体类,然后使用它,然后处理它。如何在MVC Web应用程序中使用E.F实现IoC容器
虽然我很想继续前进,但仍有一些突出的问题,我不知道如何解决,希望得到一些澄清和指导。
在具有2个项目(MVC幅&数据层 含有EF)的通用web应用程序,如果我们的扶养解析器期望的存储库 实现特定接口(允许我们在任何时间切换 库未来),界面 在哪里定义?我没有看到它是如何在mvc web项目中定义的,因为那么数据访问层将依赖于它,并且它不能驻留在数据访问层中,因为mvc项目取决于dal,而且我错过了整个点这个练习。那么 的答案是在两个项目中定义它,并让每个项目 引用它自己的副本?这甚至可能吗?或者我需要 创建第三个服务层项目并在其中粘贴一个界面 声明,并让这两个项目都引用它?
我看过一些文章谈到团结IoC和 接口,如IProductRepository,IClientRepository和 IProductService,IClientService(这就是我指的是在 我的首段)。我是否正确地假设这些 实例中的每一个都应该在我的数据库中引用一个表?如果是的话 如果我有50张桌子会发生什么?我是否需要创建50个存储库 接口和50个表相关的接口来解耦所有内容? 如何使用EF与POCO类影响事物?我需要 每个POCO都实现它自己的指定接口吗?
感谢
不要将逻辑层(表示,数据,业务)与物理层(mvc项目/程序集,数据)混淆。一个应用程序可以在一个物理组件中,并且仍然在逻辑上分层结构,不会直接与彼此进行对话,在必要时注入组件。 – Maarten 2016-04-28 10:18:23