0

我设置了一个这样的对象上下文:

public MyObjectContext(....) : this(contextName, new EntityConnection(connectionString))

连接字符串是到 Oracle 数据库的连接字符串。顺便说一句,我使用 DevArt 作为提供者。

一切正常。我可以用它来检索实体等。

但后来我想对底层连接做点什么。我做了类似的事情:

(OracleConnection)((EntityConnection)context.Connection.StoreConnection)

这给了我以下例外:

SystemInvalidCastException: [A]Devart.Data.Oracle.OracleConnection cannot be converted to [B]Devart.Data.Oracle.OracleConnection. .... Type A is from C:\Windows\....\6.60.283\.... Type B is from C:\DevDirectory\...\7.2.104.0

似乎 ObjectContext 使用的是旧版本的 DLL。但是,如果我检查我的项目的引用,我会看到对正确版本 7.2.104.0 的引用。当我进一步检查时,即使我在其类所在的子项目中根本没有引用,ObjectContext 仍然可以连接。

它如何解析它用来连接的 DLL?

4

1 回答 1

0

是的,我刚刚意识到我仍然(全局)安装了错误的 devArt 版本(6),但在项目中引用了正确的版本(7)。包含 ObjectContext 的程序集没有引用,因此它需要从 GAC 获取旧版本 (6)。

谢谢。为了澄清。

于 2013-01-23T08:03:49.427 回答