EntityConnection用于创建其StoreConnection的提供程序DLL

时间:2013-01-22 16:49:24

标签: oracle entity-framework objectcontext devart entityconnection

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

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

连接字符串是Oracle数据库的连接字符串。我使用DevArt作为提供商btw。

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

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

(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?

1 个答案:

答案 0 :(得分:0)

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

THX。澄清。