zoukankan      html  css  js  c++  java
  • 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语句,为相应表添加相应的数据。

  • 相关阅读:
    过采样算法之SMOTE
    4.4 spring-自定义标签的解析
    4.3 spring-嵌入式beans标签的解析
    4.2 spring-import 标签的解析;
    4.1 spring-alias 标签的解析;
    4.0 spring-注册解析的Bean
    3.9 spring-自定义标签解析
    3.8 spring
    3.8 spring-qualifier 子元素的使用与解析
    3.7 spring-property 子元素的使用与解析
  • 原文地址:https://www.cnblogs.com/dcy521/p/13555544.html
Copyright © 2011-2022 走看看