Asp.Net MVC 系列--基礎篇(2)

mybwu_com發表於2014-03-05

1.建立一個library 命名為eStudentDomain


2.右鍵reference資料夾,開啟nuget, 安裝entity framework


3.新增三個資料夾:

Contact : 主要放與下層通訊的介面

Domain Model:主要放邏輯實體

Entity : 僅用於資料表對應的實體


相關程式碼:

public interface IStudentContext
    {
       IQueryable<Student> StudentList { get; }
       IQueryable<StudentClass> StudentClasseList { get; }
    }
 
public class eStudentDbContext :DbContext,IStudentContext
    {
       public eStudentDbContext()
           : base("DefaultConnection")
       {
           
       }
 
       /// <summary>
       /// Remember Here MUST be property!!!
       /// </summary>
       public DbSet<Student> Students { get; set; }
       public DbSet<StudentClass> StudentClasses { get; set; }
 
       public IQueryable<Student> StudentList { get { return Students; }}
       public IQueryable<StudentClass> StudentClasseList { get { returnStudentClasses; } }
    }
 
 
 public class Student
    {
       public int Id { get; set; }
       public string Name { get; set; }
       public int ClassId { get; set; }
       public DateTime JoinDate { get; set; }
       public DateTime GraduateDate { get; set; }
 
    }
 
public class StudentClass
    {
       public int Id { get; set; }
       public string Name { get; set; }
public List<Student> Students { get;set; }
}                                             


接下來,開啟migration 。

在此之前,做以下驗證:

1.DbContext類的建構函式,傳遞了連線字串:


2.Config檔案裡,連線字串名稱和DbContext配置的一致:


Domain專案的連結字串可以不設在App.Config中,和Web Application 共用一個,配置在Web.Config裡

然後,開啟package managerconsole(就在output旁邊) :


會發現,執行完畢自動生成了Migrations資料夾和Configuration.cs 檔案,

開啟這個配置檔案,記得 Set Automatic MigrationsEnable 為 true (預設為false),可以在seed裡面寫一些初始化資料庫的程式碼,每次同步資料庫都會執行seed。示例,我新增了三個班級。

最後,同步entity 實體和Seed中的邏輯,到資料庫

到db看一看:


我們新增的三個班級:

好了,本節主要完成:安裝entity framework 包,開啟資料同步,完成同步啟動執行邏輯,完成Domain層的邏輯實體,以及把相應的entity結構同步到db。

下一節,我們介紹如何用做好的domain和同步好的db完成MVC應用。


相關文章