日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

oracle数字类型ef映射,Entity Framework 学习中级篇5—使EF支持Oracle9i - ♂风车车.Net - 博客园...

發布時間:2023/12/9 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle数字类型ef映射,Entity Framework 学习中级篇5—使EF支持Oracle9i - ♂风车车.Net - 博客园... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從Code MSDN上下載下來的EFOracleProvider不支持Oracle9i.但是,目前我所使用的還是Oracle9i。為此,對EFOracleProvider修改了以下,以便使其支持Oracle9i.

下面說說具體修改地方.(紅色部分為添加或修改的代碼部分)

一,修改EFOracleProvider

1,修改EFOracleProviderManifest.cs類文件,

internal const string TokenOracle9i = "9i";//add by xray2005

internal const string TokenOracle10g = "10g";

internal const string TokenOracle11g = "11g";

以下兩個地方,不修改也是可以的.但考慮目前我主要是使用9i,所以也就修改成9i了.

private EFOracleVersion _version = EFOracleVersion.Oracle9i; //EFOracleVersion.Oracle11g;

private string _token = TokenOracle9i; //TokenOracle10g;

2,修改EFOracleVersion.cs類文件,如下代碼所示:

namespaceEFOracleProvider

{

using System;

///

///This enum describes the current storage version

///

internal enum EFOracleVersion

{

Oracle9i = 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

///

internal static class EFOracleVersionUtils

{

///

///Get the version from the connection.

///

/// current connection

/// version for the current connection

internal static EFOracleVersion GetStorageVersion(EFOracleConnection connection)

{

string serverVersion = connection.ServerVersion;

if (serverVersion.StartsWith("9."))

{

return EFOracleVersion.Oracle9i;//add by xray2005

}

else 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 version hint is required.");

}

internal static string GetVersionHint(EFOracleVersion version)

{

switch (version)

{

case EFOracleVersion.Oracle9i:

return EFOracleProviderManifest.TokenOracle9i;//add by xray2005

case EFOracleVersion.Oracle10g:

return EFOracleProviderManifest.TokenOracle10g;

case EFOracleVersion.Oracle11g:

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))

{

switch (versionHint)

{

case EFOracleProviderManifest.TokenOracle9i:

return EFOracleVersion.Oracle9i;//add by xray2005

case EFOracleProviderManifest.TokenOracle10g:

return EFOracleVersion.Oracle10g;

case EFOracleProviderManifest.TokenOracle11g:

return EFOracleVersion.Oracle11g;

}

}

throw new ArgumentException("Could 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;//add by xray2005

}

}

}

二,使用EFOracleProvider

修改完畢后,編譯一下.如果是自己下載的源代碼編譯的,那么編譯后的EFOracleProvider自動已經在GAC注冊了.如果是手動注冊EFOracleProvider到GAC,那么命令如下:

gacutil –I“EFOracleProvider.dll”

其中gacutil.exe位于:系統盤符號:\Program Files\Microsoft SDKs\Windows\v6.0A\bin下面。

接下來,我們需要做的就是,把這個EFOracleProvider添加到Machine.config中.

第一步,找到Machine.config文件.該文件的位置在:

系統盤符號:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG下面.

第二步,用打開Machine.config文件,在DbProviderFactories配置節點,增加EFOracleProvider的配置,如下所示:

description=".Net Framework Data Provider for Odbc"

type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0,

Culture=neutral, PublicKeyToken=b77a5c561934e089" />

description=".Net Framework Data Provider for OleDb"

type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0,

Culture=neutral, PublicKeyToken=b77a5c561934e089" />

invariant="System.Data.OracleClient" description=".Net Framework Data

Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory,

System.Data.OracleClient, Version=2.0.0.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089" />

invariant="System.Data.SqlClient" description=".Net Framework Data

Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory,

System.Data, Version=2.0.0.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089" />

invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data

Provider for Microsoft SQL Server Compact"

type="System.Data.SqlServerCe.SqlCeProviderFactory,

System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral,

PublicKeyToken=89845dcd8080cc91" />

name="EF Oracle Data Provider" invariant="EFOracleProvider"

description="EF Provider for Oracle"

type="EFOracleProvider.EFOracleProviderFactory,EFOracleProvider,

Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b" />

第三步,保存即可.

接下來,簡單的介紹一下,如何使用這個EFOralceProvider.

第1步:在命令行窗口,將目錄定位到提示符, 系統盤符:\WINDOWS\Microsoft.NET\Framework\v3.5.如下所示(是我電腦上的目錄):

第2步,輸入相應的生成參數.如下圖所示:

將“data source=test;user id=xray;password= 123”成你自己的對應的參數即可.

確定之后,就可以看到生成的結果了,同時會有寫信息出來,如下示:

至此,EdmGen就為我們生成需要的文件.生成的文件如下所示:

lTestEFModel.csdl

lTestEFModel.msl

lTestEFModel.ssdl

lTestEFModel.ObjectLayer.cs

lTestEFModel.Views.cs

然后,通過EdmGen2工具, 使用剛剛生成的TestEFModel .csdl, TestEFModel .msl, TestEFModel .ssdl三個文件來生成一個模型.

命令如下:

Edmgen2.exe /toedmx TestEFModel.csdl TestEFModel.msl TestEFModel.ssdl

確定之后,該工具就會為我們生成一個TestEFModel.edmx文件了.

然后,把這個文件加入到我們的項目中,同時修改項目的App.Config文件連接字符串,如下所示:

connectionString="provider=EFOracleProvider;

metadata=res://*/TestEFModel.csdl|res://*/TestEFModel.ssdl|res://*/TestEFModel.msl;

Provider Connection String='data source=test;user id=xray;password=1111'"

providerName="System.Data.EntityClient" />

最后保存.

至此,修改EFOracleProvider并使用,介紹完畢。

最后提供幾個連接,以方便大家學習研究:

總結

以上是生活随笔為你收集整理的oracle数字类型ef映射,Entity Framework 学习中级篇5—使EF支持Oracle9i - ♂风车车.Net - 博客园...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄免费在线观看 | 中文字幕网伦射乱中文 | 亚洲 精品 综合 精品 自拍 | www日韩在线观看 | 超级变态重口av番号 | 2020国产在线 | 青青草华人在线 | 少妇黄色一级片 | 波多野结衣在线观看一区二区 | 黄色片在线观看免费 | 午夜三级在线 | 欧美黄色大片免费观看 | 99激情| 免费看污片的网站 | 伦理自拍 | 日韩免费| 麻豆一级片| 国产精品178页 | 色婷婷国产精品视频 | 一本大道东京热无码aⅴ | 91精品日韩 | 先锋资源网av | 日韩在线高清 | 国产7777777| 亚洲精品女 | 青青草久久伊人 | 性生生活性生交a级 | 国产一区二区三区免费看 | 欧美三级视频在线播放 | 国产资源网 | 全国男人的天堂网 | 黑人大群体交免费视频 | 成人一区三区 | 国产搞逼视频 | 99精品久久99久久久久 | 91人妻一区二区 | 亚洲AV无码精品黑人黑人 | 日批视频免费看 | 色综合天天射 | 亚洲超碰在线 | 欧美一级片免费观看 | 97视频在线观看免费高清完整版在线观看 | 神马久久春色 | 蜜桃成熟时李丽珍国语 | 99视频在线播放 | 人妻一区二区视频 | 亚洲精品无码不卡在线播he | 亚洲另类天堂 | 成人黄色小视频在线观看 | 日韩欧美亚洲视频 | 天天躁夜夜躁 | 中文字幕久久网 | 欧美亚色 | 九九热精 | 激情福利视频 | 久久久精品日本 | 精品九九视频 | 精品一区二区三区无码视频 | 大香伊人 | 国产精品久久9 | 中文字幕日韩高清 | 无码一区二区三区 | 欧美日韩一区二区三区视频 | 亚洲精品粉嫩小泬20p | 亚洲天堂一区在线 | 日本在线第一页 | 青青导航 | 99精品久久久久久 | 亚洲黄片一区二区 | 久热网| 丰满少妇乱子伦精品看片 | 日韩精品你懂的 | 在线中文视频 | 日本少妇bbb | 午夜电影天堂 | www伊人网| 丝袜美女av | 韩国妻子的朋友 | 绿帽人妻精品一区二区 | 少妇一级淫片免费看 | 欧美精品福利视频 | 久草福利资源在线 | 日韩最新中文字幕 | 日本大尺度做爰呻吟舌吻 | 正在播放av| 青青青免费视频观看在线 | 成年人网站黄色 | 最新精品国产 | 日韩五码电影 | 91看黄| 亚洲啪av永久无码精品放毛片 | 成年人免费毛片 | 成人国产在线视频 | 亚洲一级二级片 | 精品久久福利 | 黄色电影在线视频 | 日韩在线电影一区二区 | 四虎库| 天天干天天天 |