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);
  • 相关阅读:
    原生小程序音频播放
    Vue定义全局过滤器filter
    系统扩展性之引入外部包
    oracle update join
    OAuth2
    oracle pl/sql
    MySQL同步工具otter的使用介绍(一)
    python批量安装apk
    mac brew安装redis
    antd 修改Modal的底部按钮颜色
  • 原文地址:https://www.cnblogs.com/Loners/p/13660385.html
Copyright © 2011-2022 走看看