2011-07-20 39 views
2

我想修复一个引用包含实体框架代码(.edmx等)的.dll的应用程序。我没有源代码,所以我无法确定edmx文件使用的连接字符串。当我运行应用程序时,我收到了无法访问数据源的异常。我有EF正在使用的正确.mdf文件,但由于我看不到连接字符串,我无法验证这一点。从包含实体框架的DLL获取连接字符串

是否有另一种方法(工具)来找出这个DLL的连接字符串是什么?

+0

你有每个机会单独的app.config吗?连接字符串通常在CALLING程序集的app.config中定义,因为此时的原因太明显了。 – Gleno

回答

0

这很奇怪,这第三部分的dll没有使用配置键来获取连接字符串:每次添加连接时,实体框架都会创建一个键。 如果连接是硬编码的,你需要使用像反射器的工具来获取连接字符串

http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1

+0

的确,非常奇怪! – Gleno

+0

然后使用.net反射器。你将能够获得连接字符串....手指交叉他们没有用户.NET混淆器 –

0

您可以访问以下属性:

var connStr = Context.Connection.ConnectionString; 

这将显示您的连接正在使用的字符串,减去任何凭据。根据您使用的EF版本,Connection属性略有不同。在EFCF中,它是:

var connStr = Context.Database.Connection.ConnectionString;