Вопрос

У меня есть приложение, которое использует 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 не похожа на Classic Ado.net строки соединения, так как она имеет информацию о метаданных.

Таким образом, похоже, что мне придется лишить ту часть строки подключения, которая мне нужна, поместить это в web.config и передать ее в репозиторий.

Конечно, должен быть лучший способ!

Это было полезно?

Решение

Попробуйте добавить «Постоянная информация о безопасности = true;» к контексту строки подключения. Это сработало для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top