我正在尝试使用Oracle 11g Express和.NET 4.0框架开发ASP.NET MVC 4.0应用程序。我可以使用ODP.NET提供程序连接到数据库,也可以针对数据库生成我的EDMX。我不能做的是使用 Entity Framework 查询基础数据库。使用Visual Studio生成的connectionString实例化DbContext时,出现以下错误:



但是,之所以安装它是因为

  • 我可以在GAC中看到该dll。
  • 在machine.config中提到。
  • 我的项目引用了它。
  • 实际上,我使用它来从数据库生成我的EDMX。
  • 我已验证我在所有地方都引用了正确的版本(4.112.3.0)

  • 我在Cassini上本地运行代码,并且我的硬件是32位体系结构,因此我假设我只能使用32位DLL,因此这不是体系结构问题。

    具体的代码如下:
    public class MyContext : ObjectContext, IUnitOfWork
    {
        public MyContext()
        : base(ConfigurationManager
              .ConnectionStrings["OracleEntities"]
              .ConnectionString)//Connectionstring is verified
        {}
    }
    

    在我离开一切,留 mustache 并住在山上某处之前,请帮助我。

    解决方案:由于我还没有提到该解决方案,因此在此为子孙后代提一下。下面的Andrei询问了我的连接字符串格式,尽管我持怀疑态度,但我还是去看看了。这是我所看到的:
    metadata=res://*/OracleModel.csdl|res://*/
    OracleModel.ssdl|res://*/
    OracleModel.msl;
    provider=provider=Oracle.DataAccess.Client;
    provider connection string="DATA SOURCE=localhost:1521;
    PASSWORD=xxx;PERSIST SECURITY INFO=True;USER ID=xxx
    

    现在,请特别注意该行
    provider=provider=Oracle.DataAccess.Client;
    

    实际上,它应该阅读
    provider=Oracle.DataAccess.Client;
    

    否则,您要告诉EF使用[provider.dll],这不是真的。还要注意,似乎connectionString元素的providerName属性似乎已被覆盖或忽略。

    更新2 :如果此STILL无效,请查看machine.config。您应该看到以下部分:
    <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    
      <remove invariant="Oracle.DataAccess.Client" />
    
    </DbProviderFactories>
    

    如果存在 ,请将其注释掉并重试,否则,将其放入并重新尝试。

    最佳答案

    尝试以下连接字符串格式:

    Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
    

    查看Oracle db http://www.connectionstrings.com/oracle的连接字符串示例

    关于c# - ODP.NET错误无法找到请求的.Net Framework数据提供程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17528252/

    10-12 12:43
    查看更多