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