首页 新闻 会员 周边

EF6 for oracle

1
悬赏园豆:5 [已关闭问题] 关闭于 2015-05-18 11:47

以前一直用EF6和SQL来做项目 的开发,最近领导突然说要搞ORACLE的数据库,所以准备着手将搭建的三层开发框架往ORACLE上面迁,但在迁移过程中出现一系列的问题,现到园子里来请教前辈指教:

环境:win6 64 +ORACLE11g+EF6 +vs2013

问题如下:

一、由于不知道ORACLE的配置怎么配,所以想用实体模型连接数据库来看看生成的代码来参照写,但是在实体数据模型时找不到ORACLE的驱动?按照网上同学位的提示,在WEBCONFIG内进行配置后,还是不能连!

二、在ORALCE的官网上下载了Oracle.ManagedDataAccess.dll和Oracle.ManagedDataAccess.EntityFramework.dll,并引入到项目 的DAL层内,以前的SQL数据库的类是DBCONTEXT,ORACLE的是什么?

三、SQL和ORACLE的底层数据库的写法是否相同?最好哪些前辈能提供些源码参考

问题补充:

(我使用的是DBFIRST,不需要EF生成表)

现在按园子里面学说的,在WEB里面添加oralce的DLL后,在WEBCONFIG内也自动的加上了ORACLE的相关配置,所以只需要改一下连接数据库的语句即可;

但重新运行的时候报

:” ORA-01918: 用户 'dbo' 不存在"

按我的理解是不是EF为SQL生成数据库都加上dbo的owner,那么oracle里面的这个问题如何处理?

---------------------------------------------------------------------------------

由于上面报dbo不存,想到是否是schema的问题,在DBCONTEXT内加上modelBuilder.HasDefaultSchema("oraadmin");

后,提示报oraadmin不存在,当把oraadmin 改成 oraadmin.(多了个点)后,又报错为:ORA-00955: 名称已由现有对象使用

经过测试,当表或者对象在ORACLE内存在时,才会报出此错误

然后我到数据库将我要查询的表删除,重新执行,依然报这个错误。。。

现在被这个问题卡着

求大神指点.........

 

---------------------------------------------------------------------------

新问题:

经过调试发现,EF会每次自动的生成表到数据库内,但我在DBCONTEXT内加上了

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

在SQL里面加上这句后就不生成表了,难道ORACLE里面不同?

让EF不生成表,是否有其它的设置方法?

beggar_的主页 beggar_ | 初学一级 | 园豆:10
提问于:2015-04-15 15:31
< >
分享
所有回答(3)
0
dudu | 园豆:31007 (高人七级) | 2015-04-15 15:39

谢谢,我先看看

支持(0) 反对(0) beggar_ | 园豆:10 (初学一级) | 2015-04-15 15:43

这个问题纠结了几天,终于看到答案了,试试

支持(0) 反对(0) 银杏叶儿 | 园豆:197 (初学一级) | 2015-06-24 10:03
0

问题已经解决,总结如下:

一、EF自动生成的表是按MODEL的实体模型生成的,是区分大小写的

二、结合上面的说明 ;ORACLE是将建表和建字段时,自动的都调整为大写,所以在EF去操作表时找不到表的错误

解决办法:

将MODEL的类名和字段全部改为大写,运行正常

beggar_ | 园豆:10 (初学一级) | 2015-04-16 11:41

有效,谢谢。

支持(0) 反对(0) Jai1985 | 园豆:200 (初学一级) | 2015-12-18 15:02
0

求问,无法连接ORACLE。是什么原因!?楼主可分享一个简单的demo,提供参考!谢谢

meng23 | 园豆:202 (菜鸟二级) | 2016-01-19 09:54

连ORACLE的配置有点麻烦

1.去oralce管网上下载entityframework的dll

2.修改webconfig里面的配置,修改为oracle的配置

3.在dbcontent里面指向oracle的字符串连接

 

经过以上三步,基本上就可以连上oracle了

支持(0) 反对(0) beggar_ | 园豆:10 (初学一级) | 2016-01-19 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册