找不到具有不变名称“Devart.Data.Oracle”的ADO.NET提供程序的实体框架提供程序

时间:2015-01-02 19:04:40

标签: entity-framework-6.1 devart devforce

我正在使用Devforce 7.2.4,Devart - dotConnect for Oracle 8.4.313,Entity Framework 6.1.2。

当我在我的model.edmx上将DevForceEnabled属性设置为true时出现错误

但是我找到了link = http://blog.devart.com/entity-framework-6-support-for-oracle-mysql-postgresql-sqlite-and-salesforce.html

web.config代码

<configSections>
  <section name="ideablade.configuration" type="IdeaBlade.Core.Configuration.IdeaBladeSection, IdeaBlade.Core" />
  <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

<entityFramework>
  <providers
    <provider invariantName="Devart.Data.Oracle" type="Devart.Data.Oracle.Entity.OracleEntityProviderServices, Devart.Data.Oracle.Entity, Version=8.4.313.6, Culture=neutral, PublicKeyToken=09af7300eec23701" />
  </providers> 
</entityFramework>

<system.data>
  <DbProviderFactories>
    <remove invariant="Devart.Data.Oracle" />
    <add name="dotConnect for Oracle" invariant="Devart.Data.Oracle" description="Devart dotConnect for Oracle" type="Devart.Data.Oracle.OracleProviderFactory, Devart.Data.Oracle, Version=8.4.313.0, Culture=neutral, PublicKeyToken=09af7300eec23701" />
  </DbProviderFactories>
</system.data>

任何想法,如果Devforce和Devart还在一起工作还是我错过了什么?

3 个答案:

答案 0 :(得分:0)

我在我的一个项目中使用了Devart,并且我记得在web.config中提供程序部分的类型中的版本与GAC中的任何程序集都不匹配时出现此错误。你能否检查一下GAC中的Devart.Data.Oracle.dll版本是否真的是8.4.313.0?如果您已安装更新,则可能已更新了程序集版本,而未在web.config中更新您的版本

答案 1 :(得分:0)

还有一些事情要看 -

  • 确保您拥有Devart的正确版本号 组件。您的web.config使用两个不同的版本号。
  • Devart程序集应该在bin文件夹或GAC中可用。如果是GAC,它们也应该在下面指定 web.config中的compilation / assemblies元素。
  • 检查您的连接字符串是否使用了正确的提供程序名称。
  • 删除* .edmx.tt以及可能由EF生成的任何其他.tt。当您重新保存模型时,DevForce将生成一个新的* .edmx.tt。
  • 检查&#39; DevForce&#39;输出窗口中的窗格,用于显示任何其他消息。

答案 2 :(得分:0)

使用Oracle与EF 6.1时,这是一个错误,并在NuGet上提供的DevForce 7.2.6中得到修复。