asp.net-mvc - 如何为启用延迟加载的 MVC 应用程序应用事务隔离级别?

标签 asp.net-mvc entity-framework transactions structuremap transactionscope

我们有 Web MVC 应用程序,其中 EF 的 DbContext (POCO) 派生类由 StructureMap 管理并设置为 http 范围的生命周期。我们如何在延迟加载开启的情况下为我们的存储库设置特定的隔离级别(例如未提交的读取)?隔离级别通常由 TransactionScope 设置,它是一次性的,不应该像 DbContext 那样为整个 Http 请求而存在。我们的 Controller 对所有这些数据库特定的东西一无所知,并且只使用存储库,但是 ViewModel 可以通过访问延迟加载的属性来自动启动 Db 查询。
感谢您的任何想法。

最佳答案

您可以创建custom action filter它将使用未提交读取的事务范围,并将该操作过滤器用于您想要此行为的操作。事务未绑定(bind)到存储库。事务由 Controller 或使用的服务层启动,因为业务逻辑定义了事务的边界。

关于asp.net-mvc - 如何为启用延迟加载的 MVC 应用程序应用事务隔离级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182851/

相关文章:

c# - 如何在 ASP.Net 中的内存或磁盘中流式处理用户请求中的文件而不缓冲请求

c# - 可序列化装饰器而不是 View 模型中的 SelectList?

.net - Entity Framework 6 是否支持 .Net 3.5?

mysql - 我应该在更新之前使用选择来减少回滚吗?

java - Spring Integration 和 Transaction Management——需要多难?

c# - 强制页脚停留在渲染页面的底部

asp.net-mvc - 无法将数据从 View 传递到 Controller

c# - App.Config 中的 Entity Framework 连接字符串

entity-framework - 将两个不同的实体映射到同一个表?

sql - 具有多个更新的SQL Server事务,插入