ASP.NET MVC——CodeFirst開發模式

   Entity Framework框架提供了幾種開發模式,好比Database First,Model First,Code First。Database First是最老也是應用得最普遍的一種設計方式。Database First這種方式的設計高度依賴於數據庫中表的結構,根據表及表間的關係來建立模型。若是後期需求有所變動或者功能有很大變化的話,須要涉及到更改數據庫所付出的代價將會很大,由於以前編寫好的代碼將再也不適用於新的表,咱們必需重構以更改代碼中的邏輯以適應更改以後的表。Model First是建立ADO.NET實體對象以及它們之間的關係,而後再指定到數據庫的映射。這個實體對象即爲Model。數據庫

       咱們今天要講的是Code First(代碼先行)。它思想就是先定義模型中的類,再經過這些類生成數據庫。這種開發模式適合於全新的項目,它使得咱們能夠以代碼爲核心進行設計而不是先構造數據庫,步驟以下。框架

       1.接下來我就以一個簡單的例子來介紹這種開發模式。咱們的需求是兩個表,博客表和評論表。一個博客對應多個評論,一個評論對應一個博客。這是一對多關係。咱們先新建一個ASP.NET MVC項目,並用NuGet安裝EntityFramework。而後創建兩個Model。ide

public class Blog

{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public DateTime Time { get; set; }
    public string Summary { get; set; }
    public string Content { get; set; }
 
    public virtual ICollection<Comment> Comments { get; set; } = new List<Comment>();
}
public class Comment
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid Id { get; set; }
        public string VisitorName { get; set; }
        public string Email { get; set; }
        public DateTime Time { get; set; }
        public string Content { get; set; }

        [ForeignKey("Blog")]
        public Guid BlogId { get; set; }
        public virtual Blog Blog { get; set; }
    }

 2.接下來咱們建立數據上下文。新建一個文件夾叫Context,並在其中新建類,代碼以下:ui

 public class TestDbContext: DbContext
 {
        public TestDbContext()
          : base("name=ConString")
        {

        }
        #region 數據庫相關表 新增表須要在此添加對應關係 

        public virtual DbSet<Blog> Blog{ get; set; }
        public virtual DbSet<Comment>Comment{ get; set; } 
 #endregion }

3.接着咱們在Web.config中來配置數據庫,在Web.config中的<configuration>節點中加入以下配置(注意:section節點和connectionStrings的位置)spa

  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework"
      type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      requirePermission="false"/>
  </configSections>
  <connectionStrings>
    <add  name="ConString"  connectionString="Server=.;DataBase=test;Uid=sa;Pwd=123456" providerName="System.Data.SqlClient" />
  </connectionStrings>

4.添加完成以後,進行數據遷移設計

打開Package Manager Console(程序包管理控制檯)code

輸入命令 一、 enable-migrations 回車。二、add-migration  回車,輸入方便認識的名字 。三、下面咱們就執行正式遷移,輸入 update-database 回車,搞定。orm

相關文章
相關標籤/搜索