VS2013+MVC+EF5+oracle 实践中的那些事儿

学习中,一路报错,终于好了,总结如下

1.创建ADO.NET实体数据模型没有oracle数据源

解决方案:oracle官网下载Oracle Developer Tools for VS2013,安装即可。

2.程序运行报错:找不到请求的 .Net Framework Data Provider。可能没有安装

解决方案:把这段代码加到web.config中

<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client"/>
<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"/>
</DbProviderFactories>
</system.data> 

位置在这里吧

3.未能从程序集“Oracle.ManagedDataAccess”……

解决方案,从你的Oracle Developer Tools for VS2013安装目录中找到这个dll文件,引用就行。(从电脑上搜一下,好多路径下都有,网上下载也可,我的本地有很多,有的文件大点儿,有的小点儿,一个不行就试试另一个哈,我用的那个小的)

  

 

接下来是一些经验总结:

把我电脑的情况说一下吧,我是64bitwin7操作系统,oracle64bit服务端,VS好像都是32bit的吧。

在解决上述问题过程中,安装和卸载了无数遍odbc,odac,卸载odbc的时候还误把oracle服务端卸载了2次,主要是英语不好,doc命令行看不懂,然后重新安装的时候又是一堆报错,那些错误百度即可解决,这里不再赘述。

期间因为第2个问题一直在修改machine文件,也没啥效果,后来发现改错地方了,这两个里面都有配置文件,我一直改的都是Framework64下的,根本不管用,我的配置应该是改Framework下的,改了一下,果然报错信息变了,变成了第3个,好激动。。。这里改web.config和machine文件都可以的,web.config继承自machine。

太可怕了,如果你的问题和我类似,可以参考我的解决方案,真的不用安装odbc,odac,改machine,改tnsnames and so on,我的问题到这里就解决了,接下来要研究一下为什么oracle不能用EF6,还有oracle的数据表必须得有主键才能生成实体。

虽然一路踩坑,就当是经验积累吧,that's all

改系统配置文件的时候一定要做好备份!

 

posted @ 2018-09-28 17:34  xinyu_xinqing  阅读(623)  评论(0编辑  收藏  举报