接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下。

  1. SQL Server中datetime类型所能表示的时间范围是1753-01-01 00:00:00.000至9999-12-31 23:59:59.998之间。在.NET中DateTime的初始值是0001-01-01 00:00:00.000000,该值超出SQL Server中datetime所能表示的范围,所以如果未在编码时指定一个合理的时间会导致数据精度丢失引起的异常。由于在项目中使用Fluent API编码指定.NET中DateTime类型映射到SQL Server中datetime2类型,该类型的范围和精度均和.NET中DateTime类型一致。所以为了统一SQL Server和Oracle需要将代码中datetime2的配置去掉。
  2. 由于Oracle和SQL Server设计结构致使Oracle的Schema不同于SQLServer。所以在初始化模型时需要指定DefaultSchema。
  3. 无法对Oracle XLOB类型使用DISTICT操作符。这点是由项目中一个字符串属性未配置长度而发现的,正常来说不应该对这种超长的字符串做DISTINCT操作的,这点来说Oracle的严谨性要高于SQLServer。
  4. 生成的sql语句中若包含如下语句
    CASE xx WHEN xx THEN ''

    这里的空字符串如果不做转换会出现ORA-12704 字符集不匹配的错误,这里需要使用EF的专家模式拦截脚本修改成如下形式,具体使用方法将在后面介绍

    CASE xx WHEN xx THEN N''
  5. 无法对Oracle XLOB类型使用GROUP BY操作符。
  6. 在SQL Server中可以直接在查询表达式中使用ToString,而Oracle中映射为非NCLOB类型的字段则会报类型不匹配错误。因为这里ToString会翻译成TO_NCLOB(:p__linq__0)

原创文章,转载请注明: 转载自xdlysk的博客

本文链接地址: EntityFramework CodeFirst SQLServer转Oracle踩坑笔记[http://www.xdlysk.com/article/56ea77333c5c0ac00fa6c0c0]

EntityFramework CodeFirst SQLServer转Oracle踩坑笔记的更多相关文章

  1. sqlserver安装和踩坑经历

    sqlserver安装和踩坑经历 下载 下载 安装 大致是按照这个来的 安装教程 出错 windows系统安装软件弹出"Windows installer service could not ...

  2. CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记

    CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...

  3. ES踩坑笔记

    现在开始在业务上使用ES,记录一些踩坑经历,做点笔记. 2018-11-13 source不返回问题 使用了角色校验,客户端插入成功之后获取数据没有source,和查询参数无关. 检查mapping, ...

  4. 第十五篇:java操作oracle踩坑之旅

    最近刚做完mysql的各种需求,项目要满足oracle数据库,于是走上了漫漫的踩坑之路,同行可以看看以免踩坑……第一条:oracle建表的时候不需要在建表sql语句后指定默认字符集 DEFAULT C ...

  5. 微信小程序使用pako.js的踩坑笔记

    问题 今天组长跟我们讨论了个问题,说是文章存储占用有点大,消耗宽带流量费,让我看看能不能找个方法解决一下(文章存储的是html字符串).第一反应是没什么头绪,能想到的就是将相同的字符串替换成一个标识之 ...

  6. Vue3.x+element-plus+ts踩坑笔记

    闲聊 前段时间小颖在B站找了个学习vue3+TS的视频,自己尝试着搭建了一些基础代码,在实现功能的过程中遇到了一些问题,为了防止自己遗忘,写个随笔记录一下嘻嘻 项目代码 git地址:vue3.x-ts ...

  7. 开始更新webpack踩坑笔记

    今天开始学习webpack,记录下踩过的坑-zxf

  8. TypeScript|Angular踩坑笔记

    今天按照Angular官网玩了下demo程序,踩了个小坑,记录下. TypeScript可以将变量申明为自定义类型,同时也不对该类型进行检查(不像C#,如果没有这个类型会报错) 比如下面这样: 如果我 ...

  9. clickhouse源码Redhat系列机单机版安装踩坑笔记

    前情概要 由于工作需要用到clickhouse, 这里暂不介绍概念,应用场景,谷歌,百度一大把. 将安装过程踩下的坑记录下来备用 ClickHouse源码 git clone安装(直接下载源码包安装失 ...

随机推荐

  1. [LeetCode_5] Longest Palindromic Substring

    LeetCode: 5. Longest Palindromic Substring class Solution { public: //动态规划算法 string longestPalindrom ...

  2. 自定义圆饼(利用贝塞尔曲线和CGContext类完成)

    -(void)drawRect:(CGRect)rect{ CGFloat w = self.bounds.size.width; CGFloat h = self.bounds.size.heigh ...

  3. android shortcut &livefoulder

    android shortcut(实现步骤) 1.建立activity 2.minifest 里面注册并加上intent-filter,name为:android.intent.action.CREA ...

  4. One Step github链接

    分享一下锤科的开源应用: https://github.com/SmartisanTech/android 官方简介: http://v.youku.com/v_show/id_XMTc2Nzg1Nj ...

  5. jquery学习方法

    http://www.runoob.com/jquery/jquery-tutorial.html jQuery 语法 通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行 ...

  6. 阅读笔记 火球UML大战需求分析3

    在复习回顾的以前所学的UML 统一建模语言之后,要将他们融会贯通起来,必定要进行一次事件,这样才能更好地运用各种UML,所以,了解了所有的UML图之后,就要开始接收一个练习的项目了. 这里作者给的例子 ...

  7. 【转载】我眼中的Oracle性能优化

    我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...

  8. Javascript学习笔记:3种递归函数中调用自身的写法

    ①一般的通过名字调用自身 function sum(num){ if(num<=1){ return 1; }else{ return num+sum(num-1); } } console.l ...

  9. asp.net mvc bundle中数组超出索引

    在使用bundle 来加载css的时候报错了, @Styles.Render("~/bundles/appStyles") 第一反应 以为是的css 太多了,可是当我这个style ...

  10. B/S网站中IE6兼容问题

    在HTML中定义的样式,部分样式在IE7以前的版本中的效果是不同的,所以需要在网页中定义让浏览器以IE8的模式启动. 在HEAD中定义标签meta如下: <meta http-equiv=&qu ...