У меня есть приложение, которое использует EF CTP5.
В этой конкретной ситуации мне нужно перейти к некоторому классическому ADO.NET (для чтения нескольких наборов результатов в хранимой процедуре, которую EF не поддерживает).
Поэтому я пытаюсь использовать существующую строку подключения из объекта EntityConnection
, например:
var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown
При отладке я вижу, что ConnectionString
не содержит пароль, только источник данных, имя пользователя, базу данных и т. Д.
Это из соображений безопасности, почему они удалили его? EF скрывает где-нибудь пароль и использует его только тогда, когда он сам выполняет хранимые процедуры?
Строка подключения EF не похожа на классические строки подключения ADO.NET, так как содержит информацию метаданных.
Похоже, мне придется вырезать часть нужной мне строки подключения, поместить ее в web.config и передать ее в репозиторий.
Конечно, должен быть лучший путь!