天天看點

Oracle中使用Entity Framework 6.x Code-FirstOracle中使用Entity Framework 6.x Code-First方式開發 

Oracle中使用Entity Framework 6.x Code-First方式開發

去年寫過一篇EF的簡單學習筆記,當時EF還不支援Oracle的Code-First開發模式,今天無意又看了下Oracle官網,發現EF6.X已經支援了,并且給出了二篇教程(英文版):

1.Using NuGet to Install and Configure Oracle Data Provider for .NET

2.Entity Framework Code First and Code First Migrations for Oracle Database

基本上照着做就行了,為了友善不願意啃英文的朋友,把主要步驟"意譯"了下:

環境: Visual Studio 2013 + .Net Framework 4.5.2

1. 使用NuGet安裝、配置ODP.NET

a) 參考下圖,建立一個Console Application的項目

項目名稱随便吧,圖中是NuGet

這是主程式入口

b) 打開Solution 視圖

項目的References引用節點右擊,選擇Manage NuGet Packages...

參考下圖,搜尋Oracle,安裝圖中的二項:

 安裝過程中,會彈出License對話框,點選I Accept

安裝成功後,這二項應該會自動打上綠勾

安裝完成後,會自動打開readme.txt,地球人一般都不看這玩意兒

檢查下項目的References,參考下圖,應該看到自動添加了4個新的dll引用

再看下App.config

會自動添加以下内容:

下圖這二個地方,是用來配置連接配接字元串的,記得修改

ok, ODP.Net安裝配置完成

2.使用Code First模式開發

a) 先參考下圖,修改連接配接字元串(本文用的是HR這個示例使用者,大家可以根據實際情況修改)

打開Program.cs這個檔案

換成下面這段代碼:

 View Code

下面是主要的調用代碼,示範了insert記錄

下面是實體類的定義,完全是POJO對象,可以借助工具或純手寫.

 下面是DbContext部分,相當于DAL層.注意:OnModelCreating,這裡表示根據Model建立表時,預設将建立到HR這個Database Schema下

運作結果

打開Server Explorer面闆

連接配接到Oracle

可以看到根據Model定義,自動生成了二張表(注意下表名,自動加了複數)

可以直接檢視資料

可以看到,成功插入了2條資料

b) Model與資料庫的遷移合并

資料實體模型的類定義,往往随着需求的變化而變化,如果增加或減少了屬性,EF可以自動生成相應的db腳本,同步修改表結構

先參考下圖,進入PM控制台

輸入Enable-Migrations啟用資料庫遷移功能

然後将Employee的類定義,把原來注釋掉的Location屬性行,去掉注釋(即:增加了Location屬性)

回到PM控制台,輸入Add-Migration First 生成相應的db修改腳本

最後輸入Update-Database更新表結構

打開Server Explorer視圖,檢視下Employees表

可以發現,已經增加了新字段Location

作者:菩提樹下的楊過

出處:http://yjmyzz.cnblogs.com