zoukankan      html  css  js  c++  java
  • Entity Framework中的Migration问题

    1、自从用上了Entity Framework(简称EF),妈妈再也不用担心我要写那么复杂的SQL语句了!

    这是微软新一代的ORM工具,它能够将数据库的表中的记录映射成为程序中的一个对象,当然也能够将对象映射为数据库中的一条记录。

    它支持三种模式Model First、Database First、Code First。

    我们准备用那种方式呢?Code First。为什么呢?因为这只要写一次代码,而且不用去修改数据库。

    那么,我们如果修改了代码,增加了一个字段,在model中写了之后,怎么自动修改数据库呢,用到Migration。

    它有三步:

    Enable-Migrations //允许使用迁移

    Add-Migration 你设定一个名字(如 AddCloumText,增加字段Text) //它会自动判断这次的代码和上次的不同,然后将不同找出来

    Update-database //更新数据库,它会根据不同,用sql语句修改数据库字段。

    So easy是不?

    2、EF的Code First方式允许你先写Model,再通过Model生成数据库和表。

    具体步骤如下:

    1、建项目

    2、在model文件夹中,添加一个派生自DbContext的类,和一些Model类。

    3、修改web.Config中的连接字符串。

    4、生成基架Controller。

    这样就可以生成数据库和表。

    但实际开发中难免会修改模型和派生的Context,修改后再次运行会出现异常,提示“支持“MyContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库”异常。

    可以通过如下步骤更新数据库,消除上述异常:

    1、在项目的“程序包管理控制台"窗口,输入”enable-migrations",回车,导致在项目中生成一个“Migrations"文件夹,其中包含两个.cs类。

    2、在1中生成的Configuration.cs中修改构造函数中代码为:”AutomaticMigrationsEnabled = true;“

    3、保存修改后,在“程序包管理控制台"中输入”update-database",回车,再次运行即可。

    3、Code First 迁移更新数据库

    在使用 Code First 方式进行MVC程序设计中,更新数据库操作记录:

    1.修改需要更新的Model,如:

    Code <wbr>First <wbr>迁移更新数据库
    在Company中增加一个列名,如下:
    Code <wbr>First <wbr>迁移更新数据库
    修改后将应用程序重新编译,然后选择工具>库程序包管理器>程序包管理控制台,如图:

    打开控制台,输入enable-migrations -force ,然后回车 如图:


    运行后在项目项目资源管理器中会出现Migrations文件夹,打开Configuration.cs 文件,将AutomaticMigrationsEnabled 值改为 true.
    然后在控制台中输入 update-database 运行

  • 相关阅读:
    下载windows原装镜像的官方网站
    Typora快捷键
    UOS使用ZSH终端教程
    UOS每日折腾、调教、美化
    AMD64和X86_64
    CPU架构
    23种设计模式---单例设计模式(精华)
    java学习day32-Servlet上下文--ServletContext
    java学习day32-Servlet过滤器-Filter
    java学习day32-JSP标签技术-JSTL标签库
  • 原文地址:https://www.cnblogs.com/Alex80/p/5476569.html
Copyright © 2011-2022 走看看