3.翻譯系列:EF Code-First 示例(EF 6 Code-First系列)

原文連接:http://www.entityframeworktutorial.net/code-first/simple-code-first-example.aspxhtml

 

EF 6 Code-First系列文章目錄:數據庫

 

 

在前面一節中,咱們學會了怎麼,在咱們項目中安裝Entity Framework。如今咱們來建立一個簡單的Code-First示例吧:app

假定,咱們想爲XYZ學校建立一個簡單的應用程序,使用這個程序來添加、更新學生信息,以及學生分數信息,班級信息還有老師信息。函數

不像以前傳統作法那樣,先建立數據庫,這裏咱們爲咱們的學生建立學生領域類。首先建立Student,以及Grade實體,代碼中一個學生實體和一個Grade實體相關聯。這被稱做爲一對多的關係。後面的章節中,咱們將會學到EF怎麼管理實體之間的關係。學習

咱們建立一個控制檯應用程序,安裝好EF。測試

而後建立Student 和Grade類ui

 public class Student { /// <summary> /// 學生ID /// </summary> public int StudentID { get; set; } /// <summary> /// 學生姓名 /// </summary> public string StudentName { get; set; } /// <summary> /// 出生日期 /// </summary> public DateTime? DateOfBirth { get; set; } /// <summary> /// 圖片 /// </summary> public byte[] Photo { get; set; } /// <summary> /// 身高 /// </summary> public decimal Height { get; set; } /// <summary> /// 體重 /// </summary> public float Weight { get; set; } /// <summary> /// 導航屬性--Grade--年級 /// </summary> public Grade Grade { get; set; } }
 public class Grade { public int GradeID { get; set; } public string GradeName { get; set; } public string Section { get; set; } public ICollection<Student> Students { get; set; } }

如上,咱們建立好了程序的領域類。spa

Code-First方式,一樣還須要一個上下文類,上下文類是繼承自DbContext類的類。建立一個上下文類,以下,它繼承自DbContext,暴露兩個屬性Students和Grades..net

如今,咱們已經建立好了Code-First方式須要的類,如今來測試一下:翻譯

 

運行項目:

 

 表示一個學生信息已經成功添加到了數據庫中。

可是,數據庫在哪裏呢?數據表呢?數據列呢?

這就是EF Code-First API 迷人之處。它基於你在上下文類的構造函數中傳遞的參數,建立數據庫。由於這裏,咱們在上下文類的構造函數中沒有傳遞任何參數,EF 就給咱們在這裏建立了數據庫:

C:\Users\你的計算機名稱

這個數據庫不能附加,咱們能夠在配置文件,配置一下:

而後修改一下,上下文類的構造函數:

再運行項目看看:

 

 說明成功建立了數據庫,咱們看下生成的數據庫:

就像上面圖形中所示,EF爲咱們建立了數據庫,還建立了相應的數據表,數據列。這樣咱們就使用Code-First,建立了數據庫.

請注意:若是你修改了實體,再運行項目的話,就會報錯:例如,我在Student實體中加一個屬性Email。

而後運行項目:

 

 出現這個錯誤,是須要進行數據庫遷移。你須要在上下文類中,定義數據庫初始化策略,而後修改實體,最後運行項目。數據庫遷移技術,我好多系列文章中都講到了,固然 這個系列仍是會告訴你們怎麼配置,你們能夠到時候好好跟着我鞏固一下。

你如今確定很好奇,EF API是怎麼建立合適類型的數據列的,怎麼建立主鍵,怎麼建立外鍵的?答案就是使用Code-First默認的約定配置。下面一節中,咱們將學習Code-First默認約定。

相關文章
相關標籤/搜索