1

Entity Framework RC1 DbContext 查询问题的后续问题

我可以使用注入我的 DbContext

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

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

    DropCreateDatabaseAlways<PlssContext>

创建错误

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

我认为这意味着温莎容器正在使用它。这是否与作为 PerWebRequest 的 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”没有实现。

不知道那是怎么回事,但是...

4

2 回答 2

1

这可能是一个经典案例在此处输入图像描述

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

于 2011-03-22T21:03:44.287 回答
0

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

于 2011-03-18T00:00:09.453 回答