关闭

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

标签: MVC+EF+Oraclebug
2303人阅读 评论(2) 收藏 举报
分类:

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


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

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


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

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

原因:

首先分析连接字符串 

  <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/EF.OracleModel.csdl|res://*/EF.OracleModel.ssdl|res://*/EF.OracleModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=192.168.0.153:1521/orcl;PASSWORD=Erp168;USER ID=ERPUSER1"" providerName="System.Data.EntityClient" />
  </connectionStrings>

  • 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节点中添加
<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.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>

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


0
0
查看评论

“System.NotSupportedException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理 其他信息: 在 LINQ to Entitie

“System.NotSupportedException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理 其他信息: 在 LINQ to Entities 查询中无法构造实体或复杂...
  • hbu_pig
  • hbu_pig
  • 2015-07-27 17:24
  • 4722

System.ArgumentException的解决办法

者tag:开发心得 CSDN 推荐tag:asm 项目 上一篇: 新的一年,新的精彩 | 下一篇: 今天,您OLAP了吗(二)function StorePage(){d=document;t=d.selection?(d.sel...
  • zhanghefu
  • zhanghefu
  • 2007-06-28 09:47
  • 11521

在研发时出现运行时错误System.ArgumentException无法在类中找到资源

System.ArgumentException无法在类中找到资源   备注:本文要解决的问题如下图,此错误会在运行时出现,此问题的出现主要由于我们的忽视和经验问题          下面我们将以图文...
  • pengzhen8805
  • pengzhen8805
  • 2013-11-01 17:34
  • 1751

使用Bitmap.FromStream(GetType().Assembly.GetManifestResourceStream())出现System.ArgumentException的解决办法

今天碰到了一个非常“妖”的问题,就是在自己的数据挖掘开发包中需要动态加载一张图片,以在数据挖掘结果图表Chart中显示,程序如下:Image image = Bitmap.FromStream(    GetType().Assembly.GetManifes...
  • blue_sky_blue_heart
  • blue_sky_blue_heart
  • 2005-12-17 23:53
  • 10621

异常详细信息: System.ArgumentException: 该行已经属于此表。

        修改前:有错误的代码.        DataTable dt = new DataTable();   ...
  • MicrosoftCenterOfHN
  • MicrosoftCenterOfHN
  • 2009-06-16 21:40
  • 9629

Calibri字体,解决System.ArgumentException字体Calibri不支持样式Regular

  • 2015-09-08 19:33
  • 1.24MB
  • 下载

修复WCF异常《System.ArgumentException: 已经存在名称为“UriTemplateMatchResults”的属性》

修复WCF客户端调用接口提示BadRequest的异常
  • doris_d
  • doris_d
  • 2015-07-20 11:27
  • 588

System.ArgumentException无法在类中找到资源

System.ArgumentException无法在类中找到资源   备注:本文要解决的问题如下图,此错误会在运行时出现,此问题的出现主要由于我们的忽视和经验问题          下面我们将...
  • lchyz89
  • lchyz89
  • 2014-05-22 11:10
  • 1035

错误 175: 指定的存储区提供程序在配置中找不到,或者无效。

EF实体框架的使用过程中,c
  • lyh1112
  • lyh1112
  • 2014-10-16 15:56
  • 2881

paras[0].DbType 引发了“System.ArgumentException ”类型的异常

引言         最近在重构市委组织部考核的项目,但是重构归重构,当初的维护工作还是要继续的,所以,当旧的版本出了新问题或者是用户又有了新的需求,我们还是要满足滴……         维护工作派发下来,我们各自领取...
  • u013031565
  • u013031565
  • 2016-03-30 09:33
  • 880
    个人资料
    • 访问:94817次
    • 积分:1344
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:13篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论