• Entity Framework 6 Database-first连接Oracle11g


    Entity Framework 6 Database-first连接Oracle11g(图文细说)

      本文发布地址:http://www.cnblogs.com/likeli/p/5577264.html

      目前Oracle已经推出了托管的ODP.NET驱动来连接Oracle数据库。已经支持Code First,那么到目前位置,EF的三种模式都是可以操作Oracle数据库的了。

    相关文档:

      EF6 Code First连接Oracle11g的Oracle官方资料:http://docs.oracle.com/cd/E56485_01/win.121/e55744/entityCodeFirst.htm#ODPNT8309

      database-first配置文档(非官方):https://csharp.today/entity-framework-6-database-first-with-oracle/

      集成Visual Studio 2015的ODP.NET驱动官方下载:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html

    正文:

      好吧,我们开始来一个实际的例子。

      首先创建一个基于.net 4.5的MVC demo。名字叫做EntityFrameworkSixForOracle的工程。如下

    创建完成后,我们打开Nuget包管理器,安装一些包。

    在Nuget包管理器中搜索 ManagedDataAccess

    这里先安装第二个,也就是oracle.ManagedDataAccess,然后再安装oracle.ManagedDataAccess.EntityFramework。

    原因是因为安装oracle.ManagedDataAccess.EntityFramework后自动安装oracle.ManagedDataAccess,但是oracle.ManagedDataAccess的版本较低,好像这两个不同步,导致之后出现未知错误(仅怀疑,未验证)。

    然后将Entity Framework更新到最新版。

    好的,到这步,引用工作就完成了。接下来配置DataBase-First。

    在项目中创建一个文件夹Db,然后添加新项=》数据=》ADO.NET实体数据模型。

    点击上面的更改,然后可以看到目前所有的数据源,一般情况下,只有前面的两项,第三项Oracle数据库是没有的。我们需要自行安装Oracle官方提供的驱动程序。

    我这里提供官方下载页面,这需要有Oracle的帐号,另外也下载回来测试成功后,将安装包上传到CSDN,大家直接下载安装即可。

    官方下载页:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html

    国内CSDN下载:http://download.csdn.net/detail/a406502972/9546928

    下载回来的是一个58.69MB的安装包,默认安装就可以了。

    上面Oracle官方说明的截图已经很明白了,这是一个集成于Visual Studio 2015的Oracle驱动工具。另外,官方还提供了VS2013的集成工具。

    安装完成后,重启VS,重复上面的步骤,会发现已经有了Oracle数据库 源这一项。好了,问题解决,我们继续。

    选择Oracle数据库这一项,出现以下界面:

    这里需要说明一下的,当前正在使用的Tnsnames.ora,若是我们配置的监听文件不在上面显示的位置,则点击搜索,去自动查找,选择位置和别名后,点击复制,就可以将自己Tns的相关配置,复制到驱动程序的Tns里面了,再或者,直接用我们自己的Tns文件替换掉默认驱动程序的Tns也是可以的。

    以上配置完成后,点击测试,即可测试连接成功。这一步若是有什么不懂的地方,请留言。

    弄好之后,确定保存。

    然后选择需要导入的表,或者视图。最后单击完成即可。

    如此,EF6 Database-First模式连接Oracle11g的实例就完成了 。

    添加一个控制器,写一个查询测试一下。

    查询前这个表的前100条看看。

    好的,数据出来了,成功!

    PS:使用oracle.ManagedDataAccess驱动的话,发布的应用不用再在本地安装Oracle客户端。

    常见错误汇总(随时更新):

    1、在从数据库更新模型的时候,提示模型已生成,但出现警告或错误

    这是因为数据建表不规范,连最基本的主键都没有。

    下一章说 EF6 Code-first连接Oracle11g

  • 相关阅读:
    jdk1.8 操作List<Map> 多个map 具有相同的key 进行分组合并重组数据
    js获取字符中连续的值
    Java线程ABA问题
    Oracle递归查询语句
    Oracle学习笔记表连接(十六)
    Docker For Mac没有docker0网桥
    awk 和 sed (Stream Editor)
    WARNING: firstResult/maxResults specified with collection fetch; applying in memory!
    iptables编写规则
    InnoDB Next-Key Lock
  • 原文地址:https://www.cnblogs.com/likeli/p/5577264.html
Copyright © 2020-2023  润新知