1. 程式人生 > 實用技巧 >Entity Framework Core -- 種子資料

Entity Framework Core -- 種子資料

種子資料:為我們的資料庫表新增初始資料,就稱之為種子資料,就是使用codefirst開發模式,採用EntityFramek Core遷移命令的時候,對資料庫表初始化一條資料,或者多條資料

這樣做有利於後期維護,保持專案實體類的版本和資料庫表版本同步,如果哪天把實體類中某一個欄位的型別給改了,這個時候種子資料會報錯,提示我們資料庫也要同步修改。

新建一個類,取名為ModelBuilderExtensions.cs:

public static class ModelBuilderExtensions
    {
        public static void Send(this ModelBuilder modelBuilder) 
        {
            modelBuilder.Entity<Student>().HasData(new Student
            {
                Id = 5,
                FirstName = "哈哈哈",
                LastName = "嘿嘿嘿",
                BirthDate = System.DateTime.Now,
                Gender = Gender.其它
            });
        }
    }

因為這是擴充套件方法,使用靜態的比較好,可以直接呼叫,然後在Context類裡初始化呼叫:

public class DataContext:DbContext
    {
        public DataContext(DbContextOptions<DataContext> contextOptions):base(contextOptions)
        {

        }
        public DbSet<Student> Student { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Send();
        }
    }

然後執行:

add-migration addSendSource

更新資料庫:

update-database

這樣,在遷移過程中,種子資料就會轉化為相應的sql語句,為相應表新增相應的資料。