为什么EntityConnection对象不包含登录密码?

RPM*_*984 3 ado.net connection-string sql-server-2008 entityconnection entity-framework-ctp5

我有一个使用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
Run Code Online (Sandbox Code Playgroud)

当我调试时,我看到ConnectionString它不包含密码,只包含数据源,用户名,数据库等.

这是一个安全的事情,为什么他们删除它?EF是否在某处隐藏密码并仅在执行存储过程时使用它?

EF连接字符串与经典ADO.NET连接字符串不同,因为它具有元数据信息.

所以看起来我将要删除我需要的连接字符串的一部分,将其放在web.config中并将其传递给存储库.

当然必须有更好的方法!

Dev*_*art 6

尝试添加"Persist Security Info = True;" 到上下文连接字符串.这对我有用.