zoukankan      html  css  js  c++  java
  • 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);
        }
    }
            
  • 相关阅读:
    软件工程实践2019第四次作业
    软件工程实践2019第三次作业
    C语言第九次博客作业---指针
    基于open cv的人脸检测功能 (大自然的搬运工)
    STM32F103RCT6驱动AD7705(cubeide)
    python-tips
    在树莓派上使用DS18B02,并将数据打印在oled上
    数据库基础1
    转载:Why machine learning algorithms are hard to tune and how to fix it
    论文笔记(7)-"Local Newton: Reducing Communication Bottleneck for Distributed Learning"
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/6642408.html
Copyright © 2011-2022 走看看