实体框架4.1和通用IRepository <t>模式和温莎</t>

时间:2011-03-17 18:05:39

标签: c# entity-framework inversion-of-control castle-windsor entity-framework-4.1

Entity Framework RC1 DbContext query issue

的后续问题

我可以使用

注入我的DbContext
    Component.For<IEFDataContextProvider>().ImplementedBy<EFDataContextProvider>().LifeStyle.PerWebRequest
        .DynamicParameters((k, d) => d["context"] = new PLSS.Models.PlssContext())

这很有效。但是,这仅在我的上下文初始化程序不需要删除数据库时才有效。

    DropCreateDatabaseAlways<PlssContext>

创建错误

  

无法删除数据库“PLSS.Models.PlssContext”,因为它当前正在使用中。

我认为这意味着这是从windsor容器中使用的。这与PerSRequest的LifeStyle有关吗?我也尝试过Transient同样的问题。

另外,我如何使用xml容器表示来创建组件。我宁愿在windsor.config中使用它,所以我可以在必要时更改它。

我认为这与上面使用流畅的api相同,但我会在下面发布一个奇怪的错误。

  <component
  id="IEFDataContextProvider"
  service="AGRC.Common.Repositories.IEFDataContextProvider, AGRC.Common"
  type="AGRC.Common.Repositories.EFDataContextProvider, AGRC.Common"
  lifestyle="PerWebRequest">
  <parameters>
    <context>
      ${PlssContext}
    </context>
  </parameters>
</component>

<component
  id="PlssContext"
  type="PLSS.Models.PlssContext, PLSS.Models"
  lifestyle="transient">
</component>
  

来自程序集'Microsoft.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = null'的类型'Microsoft.Web.Mvc.MvcDynamicSessionControllerFactory'中的方法'GetControllerSessionBehavior'没有实现。

不确定是什么,但......

2 个答案:

答案 0 :(得分:1)

这可能是enter image description here

的经典案例

认为我的服务器资源管理器中有一个活动连接。

答案 1 :(得分:0)

你有一个针对MVC2编译的程序集版本,而你正在使用MVC3