Sql server 2008 为什么';EntityConnection对象是否包含登录密码?

Sql server 2008 为什么';EntityConnection对象是否包含登录密码?,sql-server-2008,ado.net,connection-string,entity-framework-ctp5,entityconnection,Sql Server 2008,Ado.net,Connection String,Entity Framework Ctp5,Entityconnection,我有一个使用EF CTP5的应用程序 在这种特殊情况下,我需要降级到一些经典的ADO.NET(以便在存储过程中读取多个结果集,EF不支持) 因此,我尝试使用EntityConnection对象中的现有连接字符串,如下所示: var ctx = (this as IObjectContextAdapter).ObjectContext; var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection; var con = new

我有一个使用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并将其传递到存储库


肯定有更好的办法

尝试将“Persist Security Info=True;”添加到上下文连接字符串中。这对我很有用。

太棒了。。。我也有同样的问题。