Entity Framework入門教程:Oracle數據源訪問


由於System.Data.OracleClient.dll從.NET Framework4.0之后已被棄用,所以我們無法在.NET Framework高版本中使用。一番搜索之后,發現好多文章提到.NET連接Oracle需要安裝客戶端,安裝驅動,各種配置...感覺無比麻煩。

Oracle Entity Framework使用基本配置

Oracle官方推出了對於.NET的支持【Oracle Data Provider for .NET】,根據我的Visual Studio下載了一個對應版本的組件,安裝很簡單,沒有什么選項。

安裝完之后,可以通過Visual Studio創建個應用,然后來體驗ODP.NET。
項目創建之后,選擇添加組件【 ADO.NET實體對象模型】

跟隨向導一路點擊,這里我選擇數據庫先行

選擇【新建一個連接】->選擇【Oracle數據源】

配置數據庫庫連接屬性,我們需要數據庫的用戶名、密碼,連接方式選擇EZ連接,然后寫上你的數據庫所在服務器的ip或者服務器主機名(注:數據庫主機名和數據庫服務名不是同一個東西),Oracle端口一般默認為1521

配置完成后,修改連接串的名字,當然這不是必要的

最后選擇需要操作的數據庫表、存儲過程、視圖...

等待vsiual studio將代碼自動生成后,即可操作數據庫訪問

using (var dbContext=new OracleDbContext())
{
    foreach (var item in dbContext.TMODALs)
    {
        Console.WriteLine("{0} {1}",item.C_ORG_CODE, item.C_USR_CODE);
    }
}

Oracle.ManagedDataAccess

在ODP.NET中包含了Oracle.ManagedDataAccess.dll組件,它是.NET連接Oracle的驅動,有了它你不需要再安裝Oracle數據庫客戶端軟件就可以連接數據庫。你可以通過Nuget直接安裝這個dll組件

調用代碼和其他數據庫的寫法沒什么區別,只要注意連接串中數據庫主機名(ip),數據庫服務名,賬號,密碼只要配置好幾本不會出什么問題。

 string connectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ZHYW)));Persist Security Info=True;User ID=root;Password=root;";
 using (OracleConnection oracleConnection = new OracleConnection(connectionString))
 {
     oracleConnection.Open();
     string cmdText = "SELECT * FROM TMODAL";
     OracleCommand oracleCommand = new OracleCommand(cmdText,oracleConnection);
     OracleDataReader oracleDataReader = oracleCommand.ExecuteReader();
     if (oracleDataReader.HasRows)
     {
         while (oracleDataReader.Read())
         {
             Console.WriteLine("{0} {1}", oracleDataReader[0], oracleDataReader[1]);
         }
     }
 }

常見的一些錯誤

server explore 中的連接"*****" 具有相同的身份證明

這是由於服務器資源管理器中已經存在該名字的連接,你可以通過【視圖】->【服務器資源管理器】->【數據庫】中把同名連接刪除

ORA-12514:TNS:監聽程序當前無法識別連接描述符中請求的服務

這個有可能是你的數據庫服務名寫錯了,也就是數據庫連接串中的SERVICE_NAME


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM