使用ADO.NET

时间:2017-03-31 16:32:28

标签: asp.net-mvc ado.net multi-tenant saas

我正在使用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())
                {

0 个答案:

没有答案