如果您使用对象上下文数据模型(带有 EDMX 文件),在创建过程中您可能希望在配置文件中指定连接字符串。
不幸的是,连接字符串不是通用连接字符串,因为它包含一些实体连接所需的东西。MySql 连接示例:
<add name="MyDbEntities" connectionString="metadata=res://*/Namespace.MyDb.csdl|res://*/Namespace.MyDb.ssdl|res://*/Namespace.MyDb.msl;provider=MySql.Data.MySqlClient;provider connection string="server=172.17.17.154;User Id=user;password=password;Persist Security Info=True;database=MyDatabase;Convert Zero Datetime=true"" providerName="System.Data.EntityClient" />
我遇到的问题是这个连接字符串在参数“提供者连接字符串”中包含提供者的连接字符串。
由于特定原因,我需要创建一个与实体模型无关的新 MySqlConnection。为了创建 MySqlConnection,我需要为它提供 mysql 连接字符串 - 这是实体模型的提供者连接字符串,我知道我需要的连接字符串始终是实体模型的相同连接字符串。
但是如何以编程方式获取提供者连接字符串?我一直在浏览模型实例,但没有成功......
以下:
ModelInstance.Connection.ConnectionString
包含类似“name=TestBotEntities”的内容,甚至不包含整个连接字符串。所以我尝试了:
ConfigurationManager.ConnectionStrings["MyDbEntities"].ConnectionString
但是那个包含整个实体连接字符串,我只是不知道如何解析它,如何只从中获取提供者连接字符串。