我有一个使用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;”到上下文连接字符串。这对我有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top