学习中,一路报错,终于好了,总结如下
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
改系统配置文件的时候一定要做好备份!
原文地址:https://www.cnblogs.com/xinyuxinqing/p/9719918.html