質問

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に入れてリポジトリに渡す必要があるようです。

確かにもっと良い方法がなければなりません!

役に立ちましたか?

解決

「Stive Security Info = true;」を追加してみてください。コンテキスト接続文字列へ。これは私のために働いた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top