Строка подключения к провайдеру из Entity Framework

Если вы используете модель данных объектного контекста (с файлом 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=&quot;server=172.17.17.154;User Id=user;password=password;Persist Security Info=True;database=MyDatabase;Convert Zero Datetime=true&quot;" providerName="System.Data.EntityClient" />

У меня проблема в том, что эта строка подключения содержит строку подключения провайдера в параметре «строка подключения провайдера».

По определенной причине мне нужно создать новый MySqlConnection, не связанный с моделью сущности. Для создания MySqlConnection мне нужно предоставить ему строку подключения mysql -, которая является строкой подключения поставщика для модели объекта, и я знаю, что строка подключения, которая мне нужна, всегда является одной и той же строкой подключения для модели объекта.

Но как программно получить строку подключения к провайдеру? Я безуспешно застрял в просмотре экземпляра модели...

Следующие:

ModelInstance.Connection.ConnectionString

содержит что-то вроде "name=TestBotEntities", даже не всю строку подключения. Так что я попробовал:

ConfigurationManager.ConnectionStrings["MyDbEntities"].ConnectionString

но этот содержит всю строку подключения объекта, и я просто не знаю, как ее разобрать, как получить из нее только строку подключения к провайдеру.

18
задан Mirek 7 August 2012 в 07:07
поделиться