entity framework中的提供者连接字符串

如果您正在使用对象上下文数据模型(使用EDMX文件),则在创建它时,您可能希望在配置文件中指定连接字符串。

遗憾的是,连接字符串不是公共连接字符串,因为它包含一些实体连接所需的东西。 MySql连接示例:

 

我遇到的问题是此连接字符串包含参数“provider connection string”中提供程序的连接字符串。

出于特定原因,我需要创建一个与实体模型无关的新MySqlConnection。 为了创建MySqlConnection,我需要为它提供mysql连接字符串 – 这是实体模型的提供者连接字符串,我知道我需要的连接字符串始终是实体模型的相同连接字符串。

但是如何获得提供程序连接字符串programmaticaly? 我被困在浏览模型实例但没有成功……

下列:

 ModelInstance.Connection.ConnectionString 

包含类似“name = TestBotEntities”的内容,甚至不包括整个连接字符串。 所以我尝试过:

 ConfigurationManager.ConnectionStrings["MyDbEntities"].ConnectionString 

但是那个包含整个实体连接字符串,我只是不知道如何解析它,如何只从它获取提供者连接字符串。

原来有两种方法。

我可以通过EntityConnectionStringBuilder解析实体连接字符串:

 string entityConnectionString = ConfigurationManager.ConnectionStrings["MyDbEntities"].ConnectionString; string providerConnectionString = new EntityConnectionStringBuilder(entityConnectionString).ProviderConnectionString; 

…或者如果我有特定的模型实例,我可以从这里获得它。

 ((System.Data.EntityClient.EntityConnection)ModelInstance.Connection).StoreConnection.ConnectionString;