Oracle中使用Entity Framework 6.x Code-First

來源:互聯網
上載者:User

標籤:

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

Oracle中使用Entity Framework 6.x Code-First

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.