我们使用 ASP.Net MVC + Autofac + EF6。DbContext 由 UnitOfWork 包装。我们通过 Autofac 为每个 http 请求创建它。我们还在 UnitOfWork 构造函数中为整个 http 请求打开事务。
问题是并非所有的 http 请求都必须包含在事务中。他们中的一些人甚至没有对 DB 的请求。
我们想将事务打开延迟到对 DB 的第一个实际请求。任何想法如何做到这一点?
我们可以覆盖 SaveChages 并在保存之前打开事务,但是选择查询不会以这种方式在事务中执行。
这里还有一个问题:我们使用 EF Plus 的全局过滤器来处理软可移动实体。它工作得很好,但是上下文的过滤器初始化相当慢。我们也想将它推迟到对 DB 的第一个实际请求。