动刀EFOracleProvider,使其支持char、timestamp(x)等类型

之前在一个使用SqlServer数据库的项目中使用过SubSonic,感觉挺好,没遇到什么问题。

于是在上一个网站毫不犹豫的也选择了Subsonic2.1,可这次很失望。SubSonic2.1 to Oracle11并不 像对SqlServer的支持那么好,很多时间,忙于给Subsonic补漏。

这次,想改用ADO.NET EF + EFOracleProvider。

关于EFOracleProvider的使用介绍可以参考一下这里:

1.ADO.NET Entity Framework支持多Provider

2.Using EF Oracle Sample Provider with EDM Designer

可是刚开始就遇到问题,在使用Edmgen.exe生成模型时,提示char和timestamp(x)类型不支持!

无奈,要动刀了。

还好,EfOracleProvider的代码不多,不用多久就找到了阵眼。

EfOracleProvider/Resources/EFOracleProviderManifest.xml,在这个文件中声明了Oracle字段 和.net数据类型的映射关系。

打开此文件,添加一段:

<Type Name="char" PrimitiveTypeKind="String">
     <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false" />
        <Unicode DefaultValue="false" Constant="true" />
        <FixedLength DefaultValue="true" Constant="true" />
     </FacetDescriptions>
    </Type>

时间: 2024-10-03 10:51:44

动刀EFOracleProvider,使其支持char、timestamp(x)等类型的相关文章

Entity Framework学习中级篇5—使EF支持Oracle9i

从Code MSDN上下载下来的EFOracleProvider不支持Oracle9i.但是,目前我所使用的还是Oracle9i.为此,对EFOracleProvider修改了以下,以便使其支持Oracle9i. 下面说说具体修改地方.(红色部分为添加或修改的代码部分) 一,修改EFOracleProvider 1,修改EFOracleProviderManifest.cs类文件, internal const string TokenOracle9i = "9i";//add by

高并发 抢购 超发-javaweb系统实现抢购功能,使起支持高并发,并且不出现超发的现象

问题描述 javaweb系统实现抢购功能,使起支持高并发,并且不出现超发的现象 使用javaWeb来实现一个抢购的功能,例如抢购某一个商品,现在我的解决方案是使用synchronized关键字,不过这种实现方式太挫了,请求大了之后服务直接挂掉. 各位大神都是如何实现 抢购功能的,使其 支持高并发,并且 不回出现超发(库存只剩一个,最后好几个人都抢到)的现象 解决方案 大部分抢购都是用缓存实现的,卖出一个将缓存里的库存数-1,直到为0 解决方案二: 你这不算什么高并发,这种进程内的同步对于分布式多

Linux中安装libiconv使php支持iconv函数教程

问题: 线上运行的lamp服务器,php不支持iconv函数. 解决方法: 安装libiconv,重新编译apache,使php支持iconv函数,实现utf-8和gb2312编码的转换. 具体步骤: 1.下载libiconv cd /usr/local/src wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz #下载 2.安装libiconv cd /usr/local/src tar zxvf libiconv-1.1

smarty中改进truncate使其支持中文的方法_php实例

本文实例讲述了smarty中改进truncate使其支持中文的方法.分享给大家供大家参考,具体如下: smarty的truncate不支持中文的截取.将smarty目录下plugins中的modifier.truncate.php改成下面这个样子就可以了 <?php /* * Smarty plugin * ------------------------------------------------------------- * Type: modifier * Name: truncate

CentOS配置虚拟主机virtualhost使服务器支持多网站多域名的方法_服务器其它

本文实例讲述了CentOS配置虚拟主机virtualhost使服务器支持多网站多域名的方法.分享给大家供大家参考,具体如下: 如何让centos(redhat)配置虚拟主机,让服务器支持多个网站,针对Apache,只需要你修改apache配置文件/etc/httpd/conf/httpd.conf即可. 里面有个example文件,你只要对应配置即可. #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # Do

Android编程使WebView支持HTML5 Video全屏播放的解决方法_Android

本文实例讲述了Android编程使WebView支持HTML5 Video全屏播放的解决方法.分享给大家供大家参考,具体如下: 1)需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做,具体如下: a. 如果要声明整个应用都要加速: 复制代码 代码如下: <application ... android:hardwareAccelerated ="tr

Android编程使WebView支持HTML5 Video全屏播放的解决方法

本文实例讲述了Android编程使WebView支持HTML5 Video全屏播放的解决方法.分享给大家供大家参考,具体如下: 1)需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做,具体如下: a. 如果要声明整个应用都要加速: 复制代码 代码如下:<application ... android:hardwareAccelerated ="tru

Mysql数据库Char和Varchar字段类型长度的选择比较

  网上有很多关于char和varchar的相关比较,但是都历史悠久,这里转载一篇信息比较新的,个人认为对我的设计字段决定帮助很大. 现代数据库一般都支持CHAR与VARCHAR字符型字段类型,CHAR是用来保存定长字符,存储空间的大小为字段定义的长度,与实际字符长度无关,当输入的字符小于定义长度时最后会补上空格.VARCHAR是用来保留变长字符,在数据库中存储空间的大小是实际的字符长度,不会像CHAR一样补上空格,这样占用的空间更少. 从以上特点来看,VARCHAR比CHAR有明显的优势,因此

使IIS支持PHP,ISAPI或CGI,FastCGI完全配置教程(最新php5.2.13配置方法)_win服务器

在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的"WEB服务扩展"中,添加一个新的WEB服务扩展,程序后缀为PHP,ISAPI程序为php5isapi.dll,然后再我的电脑->属性->高级->"环境变量"-"系统变量"中增加变量名PHPRC,数值为php.ini的路径,在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择"属性&