• EF Code-First 学习之旅 数据库初始化


    1。CreateDatabaseIfNotExists:

    2.DropCreateDatabaseIfModelChanges:

    3.DropCreateDatabaseAlways: 

    4.Custom DB Initializer: 

    复制代码
    public class SchoolDBContext: DbContext 
    {
            
        public SchoolDBContext(): base("SchoolDBConnectionString") 
        {
            Database.SetInitializer<SchoolDBContext>(new CreateDatabaseIfNotExists<SchoolDBContext>());
    
            //Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseIfModelChanges<SchoolDBContext>());
            //Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseAlways<SchoolDBContext>());
            //Database.SetInitializer<SchoolDBContext>(new SchoolDBInitializer());
        }
        public DbSet<Student> Students { get; set; }
        public DbSet<Standard> Standards { get; set; }
    }
       
    复制代码
    复制代码
    public class SchoolDBInitializer :  CreateDatabaseIfNotExists<SchoolDBContext>
    {
        protected override void Seed(SchoolDBContext context)
        {
            base.Seed(context);
        }
    }
            
    复制代码

    配置文件中初始化

    复制代码
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
        <add key="DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer"         
            value="System.Data.Entity.DropCreateDatabaseAlways`1[[SchoolDataLayer.SchoolDBContext, SchoolDataLayer]], EntityFramework" />
        </appSettings>
    </configuration>
            
    复制代码
    复制代码
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>    
        <add key="DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer"
                value="SchoolDataLayer.SchoolDBInitializer, SchoolDataLayer" />
        </appSettings>
    </configuration>
    复制代码

    关闭数据库初始化功能

    复制代码
    public class SchoolDBContext: DbContext 
    {
        public SchoolDBContext() : base("SchoolDBConnectionString")
        {            
            //Disable initializer
            Database.SetInitializer<SchoolDBContext>(null);
        }
        public DbSet<Student> Students { get; set; }
        public DbSet<Standard> Standards { get; set; }
    }
            
    复制代码
    复制代码
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>    
        <add key="DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer"
                value="Disabled" />
        </appSettings>
    </configuration>
    复制代码

    初始化 种子 数据

    复制代码
    public class SchoolDBInitializer : DropCreateDatabaseAlways<SchoolDBContext>
    {
        protected override void Seed(SchoolDBContext context)
        {
            IList<Standard> defaultStandards = new List<Standard>();
    
            defaultStandards.Add(new Standard() { StandardName = "Standard 1", Description = "First Standard" });
            defaultStandards.Add(new Standard() { StandardName = "Standard 2", Description = "Second Standard" });
            defaultStandards.Add(new Standard() { StandardName = "Standard 3", Description = "Third Standard" });
    
            foreach (Standard std in defaultStandards)
                context.Standards.Add(std);
    
            base.Seed(context);
        }
    }
            
  • 相关阅读:
    vue 将毫秒转为日期
    element-ui 点击获取table的行索引
    LInux设置tomcat端口为80
    java引用传递和值传递
    java包装类的自动装箱及缓存
    理解JVM之java内存模型
    理解JVM之类加载机制
    理解JVM之内存分配以及分代思想实现
    理解JVM之垃圾回收
    理解JVM之对象的生命周期
  • 原文地址:https://www.cnblogs.com/sjqq/p/7447935.html
Copyright © 2020-2023  润新知