3

我的应用程序包含三个项目。核心、DAL 和 BAL。

核心包含域对象(客户、订单、产品)。它还包含基本的 IRepository 接口 IRepository<T>.

DAL 包含 EntityFramework 特定的东西。它还包含具体的存储库(CustomerRepository、OrderRepository、ProductRepository)。我在这里添加了这些具体的存储库,因为它们依赖于 DbContext(这是 EF 特定的)

现在我的 BAL 应该只依赖于 Core,而不依赖于 DAL。我在这个项目中添加了对 NInject 的依赖。但是,我仍然需要告诉 Ninject 它应该将 IRepository 解析<Customer>为 CustomerRepository,这迫使我在此处添加 DAL 依赖项。是否有避免在我的 BAL 项目中添加对 DAL 的依赖?

4

1 回答 1

5

您通常会在您的组合根目录中进行容器注册,这通常是在引导程序中,并且该代码将包含在您的 Web 或桌面程序集中,而不是包含您的业务/域对象的程序集。

于 2012-09-21T22:02:43.760 回答