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);
  • 相关阅读:
    c#_表单处理方式
    C#_在.net中序列化读写xml方法的总结
    Jquery_异步上传文件多种方式归纳
    C#_Jquery无刷新上传
    构造方法的作用
    ssh项目问题01,为创建数据库抛出的异常
    成员方法的使用及其调用
    静态页面的使用和操作
    oa项目环境搭建的操作步骤详解
    写做顺序
  • 原文地址:https://www.cnblogs.com/Loners/p/13660385.html
Copyright © 2011-2022 走看看