zoukankan      html  css  js  c++  java
  • 修改model,映射到表中

    1. 当使用EF code first创建数据表后,数据库中会自动创建一个名为:dbo.__MigrationHistory的系统数据表,

    如果尚未启用数据库迁移功能,那么每次在应用程序运行时,都会对比当前的model和系统数据表的Model属性

    是否一致,如果不一致,默认发生异常。如果启用了迁移功能,这个表格就会记录每次的模型的记录和版本。

    2. 启用数据库迁移:

    step1:打开程序包管理控制器->输入Enable-Migrations

    按下Enter后,Package Manager Console会自动扫描项目中所有数据的上下文(DbContext)类。

      如果项目中有多个上下文,则必须选择使用哪个上下文:Enable-Migrations  -ContextTypeName

                                 MyContext

    step2:更新model(强制)

    程序包管理器可以完成的功能:

      修改字段

    注意:程序包管理程序的权限比较低,如果要修改字段的详细信息,需要到sql Server管理器修改

      不能强制删除表

      强制添加(在sql server管理中)的字段,在更新时不会被删除。

    1.手动实现方法:

    public class MyContext : DbContext
    {
        public MyContext()
            : base("name=MyContext")
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext,MyConfiguration>()); //重要
        }
    
        public virtual DbSet<Student> Students { get; set; }
        public virtual DbSet<Course> Courses { get; set; }
    }
    internal sealed class MyConfiguration : DbMigrationsConfiguration<MyContext>
    {
        public MyConfiguration()
        {
            AutomaticMigrationsEnabled = true;
            AutomaticMigrationDataLossAllowed = true;
        }
    
        protected override void Seed(MyContext context)
        {
    
        }
    }
  • 相关阅读:
    actionscript3.0 的一些小技巧
    Flash 安全沙箱的意义
    明明连上了网,但是打不开网页
    关于电脑上可用内存太小的问题
    AS3 Starling 学习杂谈 (一) Quad类
    更新flash builder4,6 的AIR版本
    软件工程实践2017第二次作业
    软件工程实践2017第一次作业
    微信小程序开发指南合集 各类组件用法技巧
    微信小程序视频教程合集 附带源码、PPT下载
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/7861166.html
Copyright © 2011-2022 走看看