我正在将MassTransit集成到使用SaasKit实现多租户的解决方案上。
我的DbContext使用在“ OnConfiguring”中定义连接字符串的方法,如下所述:
https://benfoster.io/blog/aspnet-core-multi-tenancy-data-isolation-with-entity-framework
问题在于,使用消息时,租户不存在,因此DbContext没有正确初始化。
如何在MassTransit的生命周期内注入租户?
我正在使用AspNet Core依赖项注入,在其中添加租户,如下所示:
public void Configure(...)
(...)
app.UseMultitenancy<MyTenant>();
总线配置:
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
(...)
cfg.ReceiveEndpoint(host, "customer-updated", ep =>
{
ep.PrefetchCount = 1;
ep.UseMessageRetry(r => r.Interval(2, 100));
ep.ConfigureConsumer<CustomerUpdatedConsumer>(provider);
EndpointConvention.Map<ICustomerUpdated>(ep.InputAddress);
});
在我的DbContext构造函数内部,仅当使用消息时,我一直将MyTenant设置为null ...
public MyDbContext(DbContextOptions<MyDbContext> options, MyTenant tenant)
{
this.tenant = tenant;
}
是否有人已经尝试将SaasKit与MassTransit集成?
谢谢