zoukankan      html  css  js  c++  java
  • Code-First 数据库初始化策略

    原文:http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx

    有四种不同的数据库初始化策略:

    1. CreateDatabaseIfNotExists:这是默认的初始值设定项。顾名思义,如果每个配置都不存在,它将创建数据库。但是,如果更改模型类,然后使用此初始化程序运行应用程序,则会引发异常。
    2. DropCreateDatabaseIfModelChanges:如果您的模型类(实体类)已被更改,此初始化程序将删除现有的数据库并创建一个新的数据库。所以,当模型类更改时,您不必担心维护数据库模式。
    3. DropCreateDatabaseAlways:顾名思义,这个初始化器在每次运行应用程序时都会删除一个现有的数据库,而不管你的模型类是否已经改变。当你想要新的数据库,每次运行应用程序,就像在开发应用程序时一样,这将会很有用。
    4. 自定义数据库初始化程序:如果上述任何一个不满足您的要求,或者您想要使用上述初始化程序初始化数据库,您也可以创建自己的自定义初始化程序

    要使用上述DB初始化策略之一,必须在Context类中使用Database类设置DB初始值设定项,如下所示:

    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; }
    }
    

      

  • 相关阅读:
    linux创建用户与删除用户及问题解决(ubuntu)
    Build tool
    Version Control&Git
    IntelliJ IDEA激活
    KDJ 指标
    MACD 分析理解
    MACD 指标
    BOLL 指标
    IaaS,PaaS,SaaS 的区别
    Kubernetes 第十七章 调度器 污点和容忍 以及高级调度方式
  • 原文地址:https://www.cnblogs.com/caolingyi/p/8028526.html
Copyright © 2011-2022 走看看