【问题标题】:Entity Framework and Object Context lifetime in ASP.NET MVCASP.NET MVC 中的实体框架和对象上下文生命周期
【发布时间】:2009-11-09 01:12:57
【问题描述】:

我在我的项目中使用实体框架,我遇到的问题是,一旦我将实体传递给视图(请记住,这些实体具有延迟初始化的对象,如下所示:Products.Owner,其中owner 是一个延迟初始化的对象)我得到一个运行时异常,告诉我 ObjectContext 超出范围。

现在这是有道理的,因为我使用 using (...entities...) { .... } 语句从 Service 获取实体,这意味着它在返回结果时被释放。

我将如何解决这个问题并拥有一个从头到尾都处于活动状态的对象上下文。谢谢。

【问题讨论】:

    标签: asp.net-mvc entity-framework service lazy-loading objectcontext


    【解决方案1】:

    一种选择是将存储库与请求相关联,并让存储库实现 IDisposable,并让 Dispose 方法处理包含的 ObjectContext,而不是在控制器操作中使用更熟悉的使用模式。

    【讨论】:

    • 您能提供一个代码示例来说明您的建议吗?
    • 补充一点:控制器已经实现了 IDisposable。因此,您可以在 Controller.Initialize 中新建您的存储库并在 Controller.Dispose 中处理它。这样可以在视图执行时使上下文保持活动状态。
    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多