iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何使用ef6创建oracle数据库
  • 633
分享到

如何使用ef6创建oracle数据库

2024-04-02 19:04:59 633人浏览 独家记忆
摘要

这篇文章给大家分享的是有关如何使用ef6创建oracle数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决方案中的数据层项目最初使用的是oracle 11g + ef5 创

这篇文章给大家分享的是有关如何使用ef6创建oracle数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

解决方案中的数据层项目最初使用的是oracle 11g + ef5 创建的实体模型,在分页时遇到了skip参数为0报错的问题,没有找到相关资料。

于是决定升级到ef6,在oracle官网中得知,Oracle Data Provider for .net in ODAC 12c Release 3 开始支持ef6

安装步骤:

1.安装odac,下载地址Http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html

2.数据层项目的.net版本改成4.5以上,使用nuget安装 EntityFramework 6 +Oracle.ManagedDataAccess +Oracle.ManagedDataAccess.EntityFramework,都安装最新稳定版。

安装后app.config和WEB.config都会被加入如下配置项

<configSections>
 <!-- For more infORMation on Entity Framework configuration, visit http://Go.microsoft.com/fwlink/?LinkID=237468 -->
 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
 </configSections>
 <entityFramework>
 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
  <parameter value="mssqllocaldb" />
  </parameters>
 </defaultConnectionFactory>
 <providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
 </providers>
 </entityFramework>
 <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.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
 </DbProviderFactories>
 </system.data>
 <runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
  <publisherPolicy apply="no" />
  <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
  </dependentAssembly>
 </assemblyBinding>
 </runtime>
 <oracle.manageddataaccess.client>
 <version number="*">
  <dataSources>
  <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
  </dataSources>
 </version>
 </oracle.manageddataaccess.client>

注意 entityFramework和 system.data中的版本号,nuget安装后自动生成的一般没问题,我在安装之前把网上找的资料里的配置项放在里面了,但是版本号不一致,程序启动不了,一直没注意到版本号,

找了好一会才发现是这两个地方。

3.然后就可以添加实体模型了。此时如果vs中显示找不到与ef6 兼容的实体框架提供程序,需要将配置文件中的ef节的 <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />删掉或者注释掉,保存后再重新尝试添加实体模型。

添加实体模型时需要先不选择数据库里的表,即生成空模型,然后打开edmx文件,在模型浏览器中选中实体模型,在属性中把DDL生成模板改成SSDLToOracle.tt (VS),数据库生成工作流改成Generate Oracle Via T4 (TPT).xaml (VS)。

这么做的原因是如果DDL生成模板使用默认项SSDLToOracle.tt ,oracle中的number(1,0)和number(2,0)类型的字段生成的实体属性的类型会是int16,然后运行的时候报映射不匹配的错误(错误代码2019)。

报错原因是oracle从ODP.NET 12.1.0.2开始为ef6采用新的默认类型映射,官网说明https://docs.oracle.com/cd/E56485_01/win.121/e55744/entityDataTypeMapping.htm#ODPNT8303,其中的 New Default Mappings 段。

SSDLToOracle.tt模板生成的属性的类型是number(1,0)对应boolean,number(2,0)对应byte,这个对应关系与新映射是一致的。

附上ef5的映射

Oracle TypeDefault EDM TypeCustom EDM Type
Number(1,0)Int16bool
Number(2,0) to Number(3,0)Int16byte
Number(4,0)Int16Int16
Number(5,0)Int16Int32
Number(6,0) to Number(9,0)Int32Int32
Number(10,0)Int32Int64
Number(11,0) to Number(18,0)Int64Int64
Number(19,0)Int64Decimal

感谢各位的阅读!关于“如何使用ef6创建oracle数据库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何使用ef6创建oracle数据库

本文链接: https://www.lsjlt.com/news/72789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用ef6创建oracle数据库
    这篇文章给大家分享的是有关如何使用ef6创建oracle数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决方案中的数据层项目最初使用的是oracle 11g + ef5 创...
    99+
    2024-04-02
  • oracle 如何创建数据库
    要创建一个Oracle数据库,您可以按照以下步骤进行操作:1. 安装Oracle数据库软件:首先,在您的计算机上安装Oracle数据...
    99+
    2023-08-23
    oracle
  • 如何创建oracle数据库
    要创建Oracle数据库,您需要按照以下步骤进行操作:1. 首先,确保您已经安装了Oracle数据库软件。您可以从Oracle官方网...
    99+
    2023-08-30
    oracle
  • oracle数据库如何创建用户
    在Oracle数据库中,创建用户可以通过以下步骤进行: 使用管理员权限登录到Oracle数据库中。 执行以下SQL语句来创建...
    99+
    2024-05-06
    oracle
  • Oracle中如何创建数据库
    在Oracle中,可以使用CREATE DATABASE语句来创建一个数据库。下面是一个创建数据库的示例:CREATE DATABA...
    99+
    2023-09-28
    Oracle
  • oracle数据库如何创建表
    oracle数据库创建表的步骤如下:打开数据库会话。使用create table语句定义表的名称、列名称和数据类型。执行语句并使用commit命令提交。使用desc命令验证表的创建。 ...
    99+
    2024-04-19
    oracle
  • 如何用oracle创建新的数据库
    要在Oracle中创建新的数据库,可以按照以下步骤操作: 登录到Oracle数据库管理工具(如SQL*Plus、SQL Devel...
    99+
    2024-03-05
    oracle 数据库
  • 如何使用navicat创建数据库
    小编给大家分享一下如何使用navicat创建数据库,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、首先登陆Navicat,然后顺利连接数据库,如下图所示:2、在IP地址为192.168....
    99+
    2024-04-02
  • Oracle如何手工创建数据库
    这篇文章给大家分享的是有关Oracle如何手工创建数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。手工创建数据库步骤1. 创建instance步骤①准备参数文件pf...
    99+
    2024-04-02
  • oracle命令如何创建数据库
    这篇文章主要介绍oracle命令如何创建数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! oracle命令(手工)创建数据库有时由于没有图形界面,需...
    99+
    2024-04-02
  • 如何在Oracle数据库中创建表
    在Oracle数据库中创建表,可以使用CREATE TABLE语句,语法如下: CREATE TABLE table_name ( ...
    99+
    2024-04-09
    Oracle
  • Oracle如何创建表空间、创建数据库用户、赋权限
    这篇文章将为大家详细讲解有关Oracle如何创建表空间、创建数据库用户、赋权限,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 创建表空间:c...
    99+
    2024-04-02
  • 如何用Ubuntu创建数据库
    用Ubuntu创建数据库的方法:打开终端命令行模式。输入以下命令连接数据库。mysql -u root -p登录成功后输入以下sql语句创建数据库。CREATE DATABASE project; #创建数据库名为project...
    99+
    2024-04-02
  • 如何创建数据库
    创建数据库的方法打开数据库管理工具,在菜单栏找到文件→新建数据库→给数据库定名→创建即可。使用命令Open DateBase <数据库名>或Modify DateBase <数据库名>来创建。...
    99+
    2024-04-02
  • MySQL如何创建数据库和创建数据表
    本篇内容介绍了“MySQL如何创建数据库和创建数据表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何使用免费的Oracle云服务创建ATP数据库
    小编给大家分享一下如何使用免费的Oracle云服务创建ATP数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前面我们讲了在Oracle的云主机安装数据库,虽然...
    99+
    2023-06-03
  • oracle数据库定时任务如何创建
    oracle 数据库创建定时任务的方法:dbms_scheduler 包:创建作业、程序,将程序与作业关联,安排作业。作业调度程序:使用图形界面创建和管理定时任务。dbms_job 包:...
    99+
    2024-04-19
    oracle
  • 如何使用navicat 8 for mysql创建数据库
    这篇文章给大家分享的是有关如何使用navicat 8 for mysql创建数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一步:在本地创建数据库,首先把数据库运行环境启动...
    99+
    2024-04-02
  • 如何使用免费的Oracle云服务创建并使用ADW数据库
    这篇文章主要介绍如何使用免费的Oracle云服务创建并使用ADW数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建ADW数据库与创建ATP数据库非常相似,甚至可以说是基本一样的,只是在有几个地方配置稍有不同。从...
    99+
    2023-06-03
  • PostgreSQL中如何使用create database创建数据库
    这篇文章将为大家详细讲解有关PostgreSQL中如何使用create database创建数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、create database语法格式CREATE&nb...
    99+
    2023-06-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作