如何在 CentOS 7 上部署 Tuotuo 项目 如何在 CentOS 7 上部署 Dianan 项目 如何变成把Tuotuo变成多宿主 如何在 Centos7 上部署服务
参考项目: SaasKit
var tenant = Request.GetOwinContext().Get<TenantInstance>(Constants.OwinCurrentTenant);
Autofac Extras: Multitenant Application Support: nuget, doc
当前进度: 已经实现
采用 Entity Framework 的项目,可以使用 Multi-Tenant With Code First 中提到的方式实现
1.Context.cs.t4
protected override void OnModelCreating(DbModelBuilder modelBuilder)
...
OnModelCreatingEx(modelBuilder);
2.IACenterEntitiesEx.cs
public partial class IACenterEntities : IDbModelCacheKeyProvider
{
public static IACenterEntities Create(string connectionString, Guid tenantId)
{
return new IACenterEntities(connectionString, tenantId);
}
internal IACenterEntities(string connectionString, Guid tenantId)
: base(connectionString)
{
Database.SetInitializer<IACenterEntities>(null);
this.SchemaName = tenantId.ToString("N");
}
public string SchemaName { get; private set; }
protected void OnModelCreatingEx(DbModelBuilder modelBuilder)
{
if (this.SchemaName != null)
{
modelBuilder.HasDefaultSchema(this.SchemaName);
}
}
public string CacheKey
{
get { return this.SchemaName; }
}
}
3.app.config
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6">
</defaultConnectionFactory>
将 MySQL 作为单例运行,以便进行针对 MySQL 数据库的相关测试
考虑采用 OAuth2/OpenID 的方式实现