原文連接: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默認約定。