zoukankan      html  css  js  c++  java
  • C# EF创建及更新数据库 Database.SetInitializer用法

    
    
    EF Code First Model字段改变数据库的字段也跟着自动改变
    public class Context:DbContext
    {
        public Context():base("UserDB")
        {
            //自动创建表,如果Entity有改到就更新到表结构
            Database.SetInitializer<Context>(new MigrateDatabaseToLatestVersion<Context, ReportingDbMigrationsConfiguration>());
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            //modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//这句是不要将EF生成的sql表名不要被复数 就是表名后面不要多加个S
        }
    
        internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<Context>
        {
            public ReportingDbMigrationsConfiguration()
            {
                AutomaticMigrationsEnabled = true;//任何Model Class的修改將会直接更新DB
                AutomaticMigrationDataLossAllowed = true;
            }
        }
    
        public DbSet<UserInfo> UserInfo { get; set; }
    
    
    
    //数据库不存在时重新创建数据库
    Database.SetInitializer(new CreateDatabaseIfNotExists<DbContext>());
    //每次启动应用程序时创建数据库
    Database.SetInitializer(new DropCreateDatabaseAlways<DbContext>());
    //模型更改时重新创建数据库
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContext>());
    //从不创建数据库
    Database.SetInitializer<DbContext>(null);
  • 相关阅读:
    底层原理
    No.1
    No.3
    No.0
    php 10进制转62进制,可用于短网址生成
    php实现斐波那契数列
    五种常见的 PHP 设计模式
    PHP利用MySQL保存session
    HTTP相关
    如何优化tomcat配置(从内存、并发、缓存4个方面)优化
  • 原文地址:https://www.cnblogs.com/Loners/p/13660385.html
Copyright © 2011-2022 走看看