【问题标题】:dbcontext in service classes w/ninject带有 ninject 的服务类中的 dbcontext
【发布时间】:2014-10-23 23:02:59
【问题描述】:

好的,菜鸟问题。我有一组服务类,它们在构造函数中获取传递给它们的 dbcontext。我正在使用 ninject 来处理这个问题:

kernel.Bind<DbContext>().ToSelf().InRequestScope();

但是我收到错误消息:“操作无法完成,因为 DbContext 已被释放。”查询上下文时。

如果我只是在构造函数中创建一个新的上下文实例,而不是在所有工作中传递它。在 MVC asp.net 应用程序中这样做有什么问题吗?

【问题讨论】:

  • 这意味着您正试图在已加载的实体中获取延迟属性,但此时您的 DBContext 已被释放。在 RequestScope 的情况下,您需要在 Request 末尾的某处处理 DBContext

标签: asp.net-mvc entity-framework ninject


【解决方案1】:

问题最终是我在 InSingletonScope 中注册了我的一项服务。愚蠢的错误,真的很难追查。

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多