Jeśli korzystasz z modelu danych obiektu contex (z plikiem EDMX), podczas jego tworzenia możesz chcieć określić ciąg połączenia w pliku konfiguracyjnym.Ciąg połączenia dostawcy z Entity Framework
Ciąg połączenia nie jest niestety typowym ciągiem połączenia, ponieważ zawiera pewne ... rzeczy potrzebne dla połączeń jednostek. Przykład z połączenia 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" />
Mam problem jest to, że ten ciąg połączenia zawiera ciąg połączenia dostawcy w „ciąg połączenia usługodawca” parametr.
Z konkretnego powodu potrzebuję utworzyć nowy MySqlConnection, niezwiązany z modelem encji. Do tworzenia MySqlConnection, muszę podać mu ciąg połączenia mysql - który jest ciągiem połączenia dostawcy dla modelu encji i wiem, że ciąg połączenia, jakiego potrzebuję, jest zawsze tym samym ciągiem połączenia dla modelu encji.
Ale jak programowo uzyskać ciąg połączenia z dostawcą? Utknąłem z przeglądania instancji modelu bez powodzenia ...
Poniższy:
ModelInstance.Connection.ConnectionString
zawiera coś w rodzaju „name = TestBotEntities”, nawet nie cały ciąg połączenia. Tak próbowałem:
ConfigurationManager.ConnectionStrings["MyDbEntities"].ConnectionString
ale jeden zawiera cały ciąg połączenia podmiot, a ja po prostu nie wiem, jak je analizować, w jaki sposób dostać tylko ciąg połączenia dostawcą od niego.