3

我有一个使用 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 中并将它传递给存储库。

肯定有更好的办法!

4

1 回答 1

6

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

于 2011-03-16T11:35:54.893 回答