摘要: 其实前面说的这些,支持9i啊,支持数据类型啊,支持自增长啊,或者是上网搜索就能解决,或者并不需要很高的技术含量。但是支持分页排序的问题,可是花了我不少时间(净时间2天以上)。我们知道,在oracle中是使用rownum来实现分页的,需要使用三层嵌套sql,如下selectt3.*from(selectt2.*,rownumasrow_numfrom(select*fromtorderbyt.idasc)t2whererownum<=20)t3wheret2.row_num>11orderbyt3.idasc如果你对SQL有疑问可以点击这里而在EFOracleProvider中,生成 阅读全文
posted @ 2012-01-02 11:17 小彬 阅读(1992) 评论(1) 推荐(0) 编辑
摘要: 看下面这个sql语句selectt2.*from(selectt.*,rownumasrow_numfromt where rownum<=20orderbyIDasc)t2wheret2.row_num>10orderbyIDasc因为在查询的时候,order by 的执行是在 select 之后的,所以在第一层查询中,得到的结果可能是如下ID row_num1 38 2020 421 1...100 8===20条记录,其中row_num字段的值在1-20这样的子结果集,在经过第二层过滤的时候,是得不到我们想要的结果的ID11 1213...20所以需要用如下的s... 阅读全文
posted @ 2012-01-02 10:42 小彬 阅读(5739) 评论(0) 推荐(0) 编辑
摘要: 我们知道Oracle不像SqlServer那样,支持原生的自动增长型,而是通过sequence来实现类似于自增长类型的效果。对于以项目为主的公司而言,往往需要做到数据库之间的切换。而当初引入Entity Framework,一个重要的目标就是不同数据库之间的快速切换。现在面临的一个问题就是:自增长类型,如果做到不用修改代码,就能支持无缝切换说句题外话,关于主键类型的选择1. 自增长类型 优:简单、查找方便、空间占用少 缺:不同类型数据库的支持不同、数据同步2. Guid 的string 优:数据同步较方便 缺:占用空间大——一般用32个字符,查找不便——没有先后次序规律3. 自定义的生成规则嗯 阅读全文
posted @ 2012-01-02 09:31 小彬 阅读(1403) 评论(0) 推荐(0) 编辑
摘要: SqlServer中有丰富的类型 bit, byte, short, int, long 等等但是到了Oracle, 就是一个类型Number本文需要修改的东西很少,主要是告诉大家,oracle数据类型与.net 类型如何对应转换的。只 需要修改一个地方,就可以支持sqlserver中常见的int, smallint, tinyint, bit类型在EFOracleProviderManifest.cs中,GetEdmType方法下,实现了数据库类型到.net数据类型的转换操作我们要修改的地方在于case"number":下的代码,原本已经实现对应关系如下:oracle-- 阅读全文
posted @ 2012-01-02 09:28 小彬 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: EFOracleProvider的最后发布时间是2008年,但是居然不支持Oracle9i。用Oracle官方的组件吧,两个问题:1. 组件好大啊,好几百兆2. 最重要在于,一直在beta但是经理说要将俺们的技术升级到2010,用Entity Framework+MVC+JQuery那就上吧。第一个问题,就是支持9i的问题——声明一下,这个解决办法是在网上搜来的。写在这里只是为了汇总。为了让EFOracleProvider支持9i,需要修改3个类:EFOracleVersion、EFOracleProviderManifest、EFOracleVersionUtils(在EFOracleVer 阅读全文
posted @ 2012-01-02 08:10 小彬 阅读(1899) 评论(3) 推荐(0) 编辑