我正在使用MVC 5创建多租户SaaS应用程序。基于MSDN文档,我创建了应用程序并成功完成了Auth过程。但样本附带EntityFramework。但我需要从主数据库获取租户连接字符串,并根据主机URL动态建立应用程序中的租户DBconnection(我有连接ADO项目的WEB API)。我不想去EF并使用ADO.NET纯粹实现它 我正在研究许多解决方案。但不满意(我需要保留所有呼叫的租户连接字符串。不确定Session是否是最佳选择。
我的示例代码: 第1步: 成功登录后。
public SqlConnection CreateTenantConnectionDatabase(string tenant)
{
string databaseServer = "";
string database = "";
string username = "";
string password = "";
using (SqlConnection conn = new SqlConnection(MasterDBConnectionString))
{
try
{
conn.Open();
using (SqlCommand command = conn.CreateCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "USP_GetTenantDBDetails";
第2步: 动态形成租户连接字符串将在每个数据库调用中使用
private static string GetTenantConnectionString(string databaseServer, string database, string username, string password)
{
//form the tenant connection string dynamically
}
第3步 我的存储库类
public TenantDTO GetTenantDetails(string TenantName)
{
TenantDTO tenantDTO = new TenantDTO();
using (var dbConnection = applicationRepository.CreateTenantConnectionDatabase(TenantName))
{
try
{
dbConnection.Open();
using (SqlCommand command = dbConnection.CreateCommand())
{