Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 实体框架提供程序类型';Oracle.ManagedDataAccess.EntityFramework';无法加载_Asp.net Mvc_Entity Framework_Odp.net - Fatal编程技术网

Asp.net mvc 实体框架提供程序类型';Oracle.ManagedDataAccess.EntityFramework';无法加载

Asp.net mvc 实体框架提供程序类型';Oracle.ManagedDataAccess.EntityFramework';无法加载,asp.net-mvc,entity-framework,odp.net,Asp.net Mvc,Entity Framework,Odp.net,我正在尝试在MVC应用程序中使用Entity Framework v6使用Oracle Data Provider.NET(ODP.NET)连接到Oracle 我已经从这里安装了ODP.NET: 我已将web.config文件配置如下: <connectionStrings> <add name="MyDB" connectionString="User ID=MyUser;Password=MyPassword;Data Source=MyDatabase; Per

我正在尝试在MVC应用程序中使用Entity Framework v6使用Oracle Data Provider.NET(ODP.NET)连接到Oracle

我已经从这里安装了ODP.NET:

我已将web.config文件配置如下:

<connectionStrings>
    <add name="MyDB" connectionString="User ID=MyUser;Password=MyPassword;Data Source=MyDatabase; Persist Security Info=False" providerName="Oracle.ManagedDataAccess" />
</connectionStrings>



<entityFramework>
    <providers>
        <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </providers>
 </entityFramework>

但是,当我尝试调用我的EF上下文时,出现以下错误:

实体框架提供程序类型“Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices,Oracle.ManagedDataAccess.EntityFramework,版本=6.121.1.0,区域性=中性,无法加载在ADO.NET提供程序的应用程序配置文件中注册的PublicKeyToken=89b483f429c47342,其固定名称为“Oracle.ManagedDataAccess.EntityFramework”。确保使用了程序集限定名称,并且运行的应用程序可以使用该程序集

我花了很多时间来寻求帮助。非常感谢您的帮助

谢谢


Martin

将此部分添加到web.config以及上面的步骤似乎已经解决了这一问题:

<system.data>

    <DbProviderFactories>

      <add name="ODP.NET, Managed Driver"
           invariant="Oracle.ManagedDataAccess.Client"
           description="Oracle Data Provider for .NET, Managed Driver"
           type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>

</system.data>

您的框架可能存在问题。请右键单击project-->属性检查框架是否为4.5版本

然后右键单击引用-->管理NuGet包。。转到nuget.org,在搜索框中键入“官方Oracle ODP.NET”。并安装正式的Oracle ODP.NET托管实体框架。
官方Oracle ODP.NET,托管驱动程序。 用于.Net x84/x64的Oracle数据提供程序


谢谢

我删除了对Nuget软件包的引用,并将DLL直接复制到我的应用程序的bin文件夹中,并在那里设置了对它们的引用。应用程序现在抛出以下错误:“找不到请求的.Net Framework数据提供程序。它可能未安装。”(我觉得DLL已安装!我可以在引用中看到它,它显示在对象浏览器中)如果它对任何人都有帮助,我无法通过从TNSNAMES中指定TNS名称连接到Oracle,连接字符串中的ORA。我想把下面的内容粘贴到连接字符串中:你救了我一天!谢谢