收藏 分享(赏)

entity framework ——学习中级篇5—使ef支持oracle9i.doc

上传人:无敌 文档编号:1069729 上传时间:2018-06-09 格式:DOC 页数:6 大小:59.51KB
下载 相关 举报
entity framework ——学习中级篇5—使ef支持oracle9i.doc_第1页
第1页 / 共6页
entity framework ——学习中级篇5—使ef支持oracle9i.doc_第2页
第2页 / 共6页
entity framework ——学习中级篇5—使ef支持oracle9i.doc_第3页
第3页 / 共6页
entity framework ——学习中级篇5—使ef支持oracle9i.doc_第4页
第4页 / 共6页
entity framework ——学习中级篇5—使ef支持oracle9i.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

2、10g“;internal const string TokenOracle11g = “11g“;以下两个地方,不修改也是可以的.但考虑目前我主要是使用 9i,所以也就修改成 9i 了.private EFOracleVersion _version = EFOracleVersion.Oracle9i; /EFOracleVersion.Oracle11g;private string _token = TokenOracle9i; /TokenOracle10g;2,修改 EFOracleVersion.cs 类文件,如下代码所示:namespace EFOracleProviderus

3、ing System;/ / This enum describes the current storage version/ internal enum EFOracleVersionOracle9i = 9, /add by xray2005/ / Oracle10g/ Oracle10g = 10,/ / Oracle 11g/ Oracle11g = 11,/ higher versions go here/ / This class is a simple utility class that determines the version from the/ connection/

4、internal static class EFOracleVersionUtils/ / Get the version from the connection./ / current connection/ version for the current connectioninternal static EFOracleVersion GetStorageVersion(EFOracleConnection connection)string serverVersion = connection.ServerVersion;if (serverVersion.StartsWith(“9.

5、“)return EFOracleVersion.Oracle9i; /add by xray2005else if (serverVersion.StartsWith(“10.“)return EFOracleVersion.Oracle10g;else if (serverVersion.StartsWith(“11.“)return EFOracleVersion.Oracle11g;throw new ArgumentException(“Could not determine storage version; “ +“a valid storage connection or a v

6、ersion hint is required.“);internal static string GetVersionHint(EFOracleVersion version)switch (version)case EFOracleVersion.Oracle9i:return EFOracleProviderManifest.TokenOracle9i; /add by xray2005case EFOracleVersion.Oracle10g:return EFOracleProviderManifest.TokenOracle10g;case EFOracleVersion.Ora

7、cle11g:return EFOracleProviderManifest.TokenOracle11g;default:throw new ArgumentException(“Could not determine storage version; “ +“a valid storage connection or a version hint is required.“);internal static EFOracleVersion GetStorageVersion(string versionHint)if (!string.IsNullOrEmpty(versionHint)s

8、witch (versionHint)case EFOracleProviderManifest.TokenOracle9i:return EFOracleVersion.Oracle9i; /add by xray2005case EFOracleProviderManifest.TokenOracle10g:return EFOracleVersion.Oracle10g;case EFOracleProviderManifest.TokenOracle11g:return EFOracleVersion.Oracle11g;throw new ArgumentException(“Cou

9、ld not determine storage version; “ +“a valid storage connection or a version hint is required.“);internal static bool IsVersionX(EFOracleVersion storageVersion)return storageVersion = EFOracleVersion.Oracle9i | storageVersion = EFOracleVersion.Oracle10g |storageVersion = EFOracleVersion.Oracle11g;

10、/add by xray2005二,使用 EFOracleProvider修改完毕后,编译一下.如果是自己下载的源代码编译的,那么编译后的EFOracleProvider 自动已经在 GAC 注册了.如果是手动注册 EFOracleProvider 到 GAC,那么命令如下:gacutil I “EFOracleProvider.dll”其中 gacutil.exe 位于:系统盘符号:Program FilesMicrosoft SDKsWindowsv6.0Abin 下面。接下来,我们需要做的就是,把这个 EFOracleProvider 添加到 Machine.config 中.第一步,找

11、到 Machine.config 文件.该文件的位置在:系统盘符号:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG 下面.第二步,用打开 Machine.config 文件,在 DbProviderFactories 配置节点,增加EFOracleProvider 的配置,如下所示:第三步,保存即可.接下来,简单的介绍一下,如何使用这个 EFOralceProvider.第 1 步:在命令行窗口,将目录定位到提示符, 系统盘符:WINDOWSMicrosoft.NETFrameworkv3.5.如下所示(是我电脑上的目录):第 2 步,输入相应的生成

12、参数.如下图所示:将“data source=test;user id=xray;password= 123”成你自己的对应的参数即可.确定之后,就可以看到生成的结果了,同时会有写信息出来,如下示:至此,EdmGen 就为我们生成需要的文件.生成的文件如下所示: TestEFModel.csdl TestEFModel.msl TestEFModel.ssdl TestEFModel.ObjectLayer.cs TestEFModel.Views.cs然后,通过 EdmGen2 工具, 使用刚刚生成的 TestEFModel .csdl, TestEFModel .msl, TestEFMo

13、del .ssdl 三个文件来生成一个模型.命令如下:Edmgen2.exe /toedmx TestEFModel.csdl TestEFModel.msl TestEFModel.ssdl确定之后,该工具就会为我们生成一个 TestEFModel.edmx 文件了.然后,把这个文件加入到我们的项目中,同时修改项目的 App.Config 文件连接字符串,如下所示:最后保存.至此,修改 EFOracleProvider 并使用,介绍完毕。最后提供几个连接,以方便大家学习研究: Code.MSDN 上的 EFOracleProvider; 经过我修改后,支持 Oracle9i 的 EFOracleProvider.dll EdmGen2.exe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报