我正在使用SaaSKit创建一个多租户webapi,我能够完全按照自己的意愿配置所有内容,但是我需要在Package Manager控制台中运行命令,其中主要的一个是添加迁移。用于每个租户的数据库,因为这个数据库数据是在运行时创建的,我在DbContext构造函数中有一个类型为AppTenant的参数,当我想将目标迁移添加到此数据库时出现问题,控制台显示错误:< / p>
无法解析类型为“xxx.xxx.xxx.AppTenant”的服务 试图激活'xxx.xxx.xxx.AppTenantContext'。
我不知道我做的一切是否正确,但我相信解决方案是创建一个实现IDbContextFactory的类,但在我们使用的Multi Tenancy应用程序表单中,为每个Tenant选择的数据库是由根据所访问的主机选择租户的理想数据库的解析器,即我看到的唯一解决方案是创建一个带有IDbContextFactory的默认租户,仅运行此Add-Migration命令。
但是,如何在我的DbContext的构建器中创建一个创建此默认实例的工厂?这是最好的解决方案吗?
PS:我已经通过创建另一个空构造函数或配置
来测试它AppTenantContext构造函数:
private readonly AppTenant _tenant;
public AppTenantContext(AppTenant tenant)
{
if (tenant != null)
{
_tenant = tenant;
Database.EnsureCreated();
if (Database.GetPendingMigrations().Count() > 0)
Database.Migrate();
}
}