Entity framework 4 在多层体系结构中使用Autofac

Entity framework 4 在多层体系结构中使用Autofac,entity-framework-4,asp.net-4.0,autofac,Entity Framework 4,Asp.net 4.0,Autofac,我对DI/IoC概念相当陌生,希望在3层ASP.NET Webforms应用程序中使用Autofac UI层:ASP.NET webforms网站 BLL:业务逻辑层,用于调用DAL上的存储库 DAL:.EDMX文件(实体模型)和ObjectContext,以及抽象每个实体的CRUD操作的存储库类 实体:POCO实体。坚持无知。由Microsoft的ADO.Net POCO实体生成器生成 我问了一个更一般的问题。基本上,我想在DAL中为每个HttpContext创建一个obejctconte

我对DI/IoC概念相当陌生,希望在3层ASP.NET Webforms应用程序中使用Autofac

  • UI层:ASP.NET webforms网站
  • BLL:业务逻辑层,用于调用DAL上的存储库
  • DAL:.EDMX文件(实体模型)和ObjectContext,以及抽象每个实体的CRUD操作的存储库类
  • 实体:POCO实体。坚持无知。由Microsoft的ADO.Net POCO实体生成器生成
我问了一个更一般的问题。基本上,我想在DAL中为每个HttpContext创建一个obejctcontext。但我不想在UI中添加对DAL的引用,也不想直接在DAL中添加对HttpContext的访问。我想这就是国际奥委会工具发挥作用的地方。我上一个问题的答案是使用温莎城堡的一个很好的例子。我想使用Autofac作为我的IoC工具,但不知道如何实现这一点。(如何在应用程序中访问DAL_开始注册该组件,而我不想在我的UI中引用它,有哪些正确的引用可以将BLL中的DAL组件与Autofac一起使用,我是否也应该将BLL注册为Autofac中的组件)


抱歉,各位没有提出明确的问题并要求提供一种工作示例,但我对整个国际奥委会的概念非常陌生,我认为我无法在我目前的时间有限的项目中实现它。

您正在寻找的技术是Autofac模块:

模块将相关配置分组,例如DAL类型,并可通过Web.config加载到应用程序中:

这将避免您的web应用程序和DAL之间需要任何硬引用

如果要为每个请求注册DAL组件,请使用
InstancePerLifetimeScope()
共享修饰符。这与
InstancePerHttpRequest()
的工作方式相同,除非您在应用程序中自定义生存期层次结构(不太可能)

祝你好运


尼克

谢谢你,尼克。不知道我可以将Web.config与Autofac.hi@nicholas blumhardt一起使用,你知道有没有实体数据模型-Autofac-mvc4的项目示例可供下载吗?提前谢谢!。