.NET Entity Framework (with Oracle ODP.NET) -Code First

來源:互聯網
上載者:User

標籤:work   http   oracle   zip   nuget   實體   目標   efi   get   

上一篇文章介紹了.NET Entity Framework ,並示範了Model First模式,本文將繼續討論 Code First 模式的實現。 

一、摘要

1、目標

本文驗證了通過Oracle Data Provider for .NET (ODP.NET)使用Entity Framework (EF) Code First。先建立.NET類,通過架構在資料庫中建立這些類對應的表;修改這些類,並通過Code First 將這些類的變化移植和映射到對應表中。

2、前言

Entity Framework 抽象關係型資料庫的邏輯架構並映射到.NET應用中,為開發人員提供了對象關係映射能力。Code First 讓開發人員開發的類轉化為資料庫的實體表。Code First Migrations 讓類的變化精準地映射到資料庫的對應表。

自從Oracle Data Access Components (ODAC) 12c Release 3 (12.1.0.2.1)這個版本開始,ODP.NET支援Code First 和 Code First Migrations 了,ODP.NET提供EF模型(Model)的資料庫存、取及更新能力。

本文將建立EF程式,產生"Employee" 和"Department" 類,並添加這些類的對象資料。程式運行時,會將類映射到資料庫表,並將Object Storage Service為表記錄行。然後為類添加新的屬性,而這些屬性會通過Code First Migrations添加到表的列資訊。

3、環境條件

開始前,你應該滿足以下條件:

  • Visual Studio 2013 以上,.Net Framework 4.5以上
  • Oracle 11g Release 2以上
  • 將這些檔案下載到你的工作目錄(下載的檔案為Programecs.txt)
  • 請先閱讀“通過NuGet 安裝配置ODP.NET”,本文將告訴你如何安裝和配置 Entity Framework 6 以及 ODP.NET,並通過一個控制台程式來驗證相關使用。
  • 如果你並不瞭解ODT是什麼,本條可略。Oracle Developer Tools(ODT)可以整合到Visual Studio環境中輔助Oracle開發,但這對Code First並不是必須的。本文能過 Server Explorer 瀏覽Oracle資料庫物件變化以驗證Code First 對資料庫的改變。如果你想用ODT的話請去Oracle官網上下載。

本文還將以Oracle 中內建的"HR"為例,但注意資料表對象的命名要避免衝突。

二、Code First

本部分將建兩個類 "Employee" 、 "Department" ,並儲存相關資料。當程式運行時,EF Code First會建立這兩個類的對應表,並在產生類執行個體資料並儲存時,會產生一個表的資料記錄。

1、開啟上一往篇文章中建立的項目(點此進入),開啟app.config。在<connectionStrings> 配置節下修改使用者名稱和密碼,以串連HR資料庫。注意連結的名字:OracleDbContext,我們會在後面的程式中用到這個名字

 2、從下載的檔案中copy出程式碼片段,粘到項目的Program.cs中。這段代碼需要ODP.NET 和 EF 的相關配置,這些配置在前一篇文章中已配置好了。仔細閱讀代碼會發現,資料庫操作類OracleDbContext 名字與第1步所提到的 <connectionStrings> 配置節中的名字相同。程式使用 串連串資訊串連資料庫,然後建立 Employee 和 Department 的執行個體,並產生資料。

如,看下這兩個類在程式中如何定義的。每個類都包含有可被讀取和儲存的欄位。其中一個欄位(Location)被注釋了,後續會去掉這個欄位的注釋。

如果你不想使用HR架構,你可以在代碼" modelBuilder.HasDefaultSchema("HR"); " 中,將HR替換成你想用的架構。

 3、運行程式,將在資料庫中建立 "Employees" 和 "Departments" 表,並各添加一條資料。注意,這些表名是大小寫敏感的。

 4、檢查一下資料庫中,這些表各資料是否正常添加。運行完程式後,在Server Explorer 中點開 HR.ORCL連結。此步操作需要安裝配置 ODT (Oracle Developer Tools for Visual Studio)

 請輸入正確的密碼

展開表,檢查在類中定義的兩個表是否被建立

右鍵DepartmentsEmployees ,查詢表資料,驗證資料與程式中插入的一致性。

三、Code First Migration

類會隨著業務需求和資料庫結構描述的變化而改變類定義,本部分會改變Employee類來類比這種變化 。只需少量代碼,就能使類的變化同步到資料庫表。

在第二部分代碼中,第三個表_MigrationHistory同時被建立。這個表會跟蹤Code First 類的變化。

本步將示範在Employee類中添加欄位 Location ,並將它同步到資料庫表中。

1、依次開啟 View > Other Windows > Package Manager Console. 這個視窗的功能是用來輸入Code First 的遷移命令,以同步.NET類和資料庫結構。

2、在視窗裡輸入 Enable-Migrations 。這個命令是允許開啟 Code First Migrations 功能。

3、在Program.cs 中去掉注釋,類比在Employee類中添加欄位的情形。

4、在PMC視窗輸入 Add-Migration First ,架構將會為資料模型Model 的變化 產生遷移代碼。

5、在視窗中鍵入 Update-Database ,變化將同步到資料庫

6、再看下資料庫表的變化 。在Server Explorer開啟 Employees表

驗證下Location欄位是否被添加

四、總結

本文要點如下:

  • 使用ODP.NET 建立 Code First 應用,將類及資料存放區到資料庫表中
  • 使用 Code First Migrations 更新資料庫結構

.NET Entity Framework (with Oracle ODP.NET) -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.