在消息处理程序中使用 rebus TransactionContext
Use rebus TransactionContext within a message handler
我正在尝试在我的消息处理程序中使用 Rebus 事务上下文。
我已经阅读了文档 here and have seen the sample here,但是我不知道温莎是如何工作的。
有人可以举例说明在没有任何 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();
其中 MyCustomUnitOfWork
可以是您想要的任何内容,例如class 创建一个 EF 数据库上下文并调用 SaveChanges
等等。
您可以使用 运行 代码阅读有关 the wiki page about Unit Of Work, or go directly to the sample that demonstrates Rebus.UnitOfWork 的更多信息。
我正在尝试在我的消息处理程序中使用 Rebus 事务上下文。 我已经阅读了文档 here and have seen the sample here,但是我不知道温莎是如何工作的。
有人可以举例说明在没有任何 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();
其中 MyCustomUnitOfWork
可以是您想要的任何内容,例如class 创建一个 EF 数据库上下文并调用 SaveChanges
等等。
您可以使用 运行 代码阅读有关 the wiki page about Unit Of Work, or go directly to the sample that demonstrates Rebus.UnitOfWork 的更多信息。