实体框架在运行时更改连接

实体框架在运行时更改连接

我有一个Web API项目,它引用了我的模型和DAL程序集。向用户呈现登录屏幕,他可以在其中选择不同的数据库。

我按如下方式构建连接字符串:

    public void Connect(Database database)
    {
        //Build an SQL connection string
        SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder()
        {
            DataSource = database.Server,
            InitialCatalog = database.Catalog,
            UserID = database.Username,
            Password = database.Password,
        };

        //Build an entity framework connection string
        EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder()
        {
            Provider = database.Provider,
            Metadata = Settings.Default.Metadata,
            ProviderConnectionString = sqlString.ToString()
        };
    }

首先,我如何实际更改数据上下文的连接?

其次,由于这是一个Web API项目,连接字符串(在每个登录时设置)在整个用户的交互中是持久的还是应该每次都传递到我的数据上下文?


杨魅力
浏览 434回答 3
3回答

森栏

我得到了错误:关键字不支持'数据源'。为了解决这个问题,我不得不改变他的代码的这一部分:// add a reference to System.Configurationvar entityCnxStringBuilder = new EntityConnectionStringBuilder     (System.Configuration.ConfigurationManager             .ConnectionStrings[configNameEf].ConnectionString);对此:// add a reference to System.Configurationvar entityCnxStringBuilder = new EntityConnectionStringBuilder{     ProviderConnectionString = new  SqlConnectionStringBuilder(System.Configuration.ConfigurationManager                .ConnectionStrings[configNameEf].ConnectionString).ConnectionString};我真的很抱歉。我知道我不应该使用答案回答其他答案,但我的答案太长了评论:(
打开App,查看更多内容
随时随地看视频慕课网APP