我正在尝试在我的消息处理程序中使用 Rebus 事务上下文。我已阅读此处的文档并在此处查看示例,但是我不知道 Windsor 是如何工作的。
有人可以举一个在没有任何 IOC 容器的情况下将 ITransactionContext 与 EF 一起使用的示例,以了解它的工作方式吗?
谢谢
我可以推荐你看一下Rebus.UnitOfWork包,因为它提供了一个更高级别的 API 来实现一个自定义的工作单元——不管有没有 IoC 容器。
使用 Rebus.UnitOfWork 你可以这样做:
Configure.With(...)
.(...)
.Options(o => {
o.EnableUnitOfWork(Create, Commit, RollBack, Cleanup);
})
.Start();
//....
static MyCustomUnitOfWork Create() => new MyCustomUnitOfWork();
static void Commit(MyCustomUnitOfWork uow) => uow.Commit();
static void RollBack(MyCustomUnitOfWork uow) => uow.RollBack();
static void Cleanup(MyCustomUnitOfWork uow) => uow.Dispose();
whereMyCustomUnitOfWork
可以是您想要的任何东西,例如创建 EF 数据库上下文并SaveChanges
在其上调用和诸如此类的类。
您可以在 wiki 页面上阅读有关 Unit Of Work 的更多信息,或者直接转到使用运行代码演示 Rebus.UnitOfWork 的示例。