Если вы используете модель данных объекта contex (с файлом 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
но он содержит всю строку соединения с сущностью, и я просто не знаю, как ее разобрать, как получить от нее только строку подключения поставщика.