C# 如何在asp mvc中为每个用户保留单独的数据库

C# 如何在asp mvc中为每个用户保留单独的数据库,c#,mysql,asp.net-mvc,asp.net-mvc-4,C#,Mysql,Asp.net Mvc,Asp.net Mvc 4,我为每个用户保留一个单独的数据库,我从主数据库中检查数据库并获取该用户的数据库名称,并在上下文类中更改ConnString,但是当多个用户登录时,最后一个用户的数据库正在被处理。我怎样才能解决这个问题 public class DatabaseContext : DbContext { public DatabaseContext(string database) : base(("Server=localhost;port=3306;Datab

我为每个用户保留一个单独的数据库,我从主数据库中检查数据库并获取该用户的数据库名称,并在上下文类中更改ConnString,但是当多个用户登录时,最后一个用户的数据库正在被处理。我怎样才能解决这个问题

    public class DatabaseContext : DbContext
    {
        public DatabaseContext(string database) : 
        base(("Server=localhost;port=3306;Database="+ database+ 
        ";uid=root;password=;charset=utf8;"))
        {
            DbConfiguration.SetConfiguration(new 
             MySql.Data.Entity.MySqlEFConfiguration());
        }
        ..
        ..
    }

上面的代码片段位于上下文类内部。我正在更改web.config中的连接字符串。

为什么要这样做?实际要求是什么?您根本不应该更改web.config。让它拥有主数据库的连接字符串,然后根据主数据库中的内容构建用户连接字符串。每个控制器都应该为用户实例化一个具有正确连接字符串的新Dbcontext。请注意,由于每个用户拥有不同的数据库,您将失去连接池的好处。每个用户都将拥有一个连接,而不是根据需要共享它们。如果不要求有单独的DBs,则不要。只要组织数据库中要分离的数据。@EmreSavcı您将向多个人出售一个项目,所有这些人都必须有一个单独的数据库。请这样想。为什么不为每个用户使用一个查找表而不是一个表,这似乎不可伸缩?我很困惑,所以您有一个包含所有用户信息的数据库(查找表)然后您只想使用该信息更改连接字符串,该字符串链接到不同的数据库?每个业务的数据库?