MVC+EF+Oracle运行时 “System.ArgumentException”异常

安装完 Oracle Developer Tools for Visual Studio,配置完EF后运行出现:


“System.ArgumentException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理
其他信息: 指定的存储区提供程序在配置中找不到,或者无效。

或 找不到请求的 .Net Framework Data Provider。可能没有安装。

MVC+EF+Oracle运行时 “System.ArgumentException”异常_第1张图片


引发异常的原因是因为machine.config文件中没有配置oracle的程序映射。

machine.config:Visual Studio的配置文件,位于C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

原因:

首先分析连接字符串 

  
    
  

  • name="Entities"  //连接字符串名称 
  • connectionString=""  //连接字符串主题 
  • provider=Oracle.ManagedDataAccess.Client;   //Oracle.ManagedDataAccess.Client程序集的名称,用于将EntityClient 的操作结果,解释为Oracle识别的操作,并作用于Oracle数据库,这个程序集它不是默认VS自带的,而是通过machine文件配置出来的,所以假如没有这个程序集,就无法和Oracle沟通,即使运行成功一但有涉及到数据库的数据操作就会发生异常
  • providerName="System.Data.EntityClient"    //System.Data.EntityClient 命名空间是 Entity Framework 的 .NET Framework 数据提供程序。

所以引发异常的原因就是因为machine.config文件中没有配置oracle程序集的程序映射


解决:
 需要在该文件中的 DbProviderFactories节点中添加

        invariant需要和配置文件的provider一样名字一样


你可能感兴趣的:(C#,Oracle)