Entity Framework Code First迁移基本面拾遗

项目中用到了EF Code First和迁移,但发现有些方面似懂非懂。比如:如何在迁移文件中控制迁移过程?如果在迁移文件中执行SQL语句?如何使用Update-Database的其它参数?数据库在生产环境的时候如何迁移?于是就有了下面的这些体验:

enable-migration

第一次生成数据库时使用。

→ enable-migration
→ 在类库下多了Migrations文件夹,包含Configuration.cs和每次的迁移记录文件

每次的迁移文件大致是:

迁移的配置文件大致是:

数据库初始化

Database.SetInitializer(new MigrateDatabaseToLastesVerstion

Add-Migration

每次迁移保存在本地。

配置文件大致如下:

→ 比如增加一个列

→ 运行: Add-Migration somename

→ 迁移文件大致是

Update-Database

更新数据库,执行没有被执行的迁移文件。

→ 执行:update-database -verbose

verbose表示显示更新明细,会显示执行了哪些迁移,执行了哪些SQL语句。

→ 其它参数

TargetMigration
Script & SourceMigration:创建SQL语句
Force:允许数据丢失
ProjectName:DbMigrationsConfiguraiton所在的类库
ConfigurationTypeName:DbMigrationsConfiguration的继承类
SartUpProjectName:连接字符串所在的类库
ConnectionString & ConnectionProviderName:明确连接字符串或provider

或者通过:get-help update-database -detailed, 了解更多。

回滚

Update-Database -TargetMigration:”SomeMigrationName” -verbose

在迁移文件中自定义一些迁移动作,控制迁移过程

所有的迁移文件继承自DbMigration这个类,该类提供了很多方法供我们控制迁移过程。

→ 比如让增加的类有一个默认值

执行SQL语句

比如,现有数据的某些列为NULL,如果想给这些行的该列附上值,该如何做呢?

→ 改变领域模型
→ 执行:Add-Migration somename
→ 在迁移文件中执行SQL语句

→ Update-Database -verbose

数据库的种子数据

对生产环境下的数据库作迁移

→ 执行:udb -script -verbose
→ 弹出一个可以编写sql语句的窗口,此时没有与数据库连接

alter table sometable add column nvarchar(max)

insert into _MigrationHistory(MigrationId,CreatedOn, Model, ProductVersion) values(…)

→ 执行:udb -verbose

此时与数据库连接,执行语句

→ 如果想从某个一个迁移开始

udb -sourcemigration:”somename” -script

→ 执行: udb -verbose

关闭种子数据

Database.SetIntializer

Original: https://www.cnblogs.com/darrenji/p/5285855.html
Author: Darren Ji
Title: Entity Framework Code First迁移基本面拾遗

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551539/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 使用系统参数表,提升系统的灵活性

    1、使用系统参数表的好处 ​ Spring Boot项目中常有一些相对稳定的参数设置项,其作用范围是系统级的或模块级的,这些参数称为系统参数。这些变量以参数形式进行配置,从而提高变…

    技术杂谈 2023年6月21日
    091
  • 医学科技解剖数字人 All In One

    医学科技解剖数字人 All In One 数字人解剖系统 数字化虚拟人体是将大量真实人体断面数据信息在计算机里整合重建成人体的三维立体结构图像,是医学与信息技术、计算机技术相结合的…

    技术杂谈 2023年6月1日
    080
  • MySQL将一个表的数据插入到另外一张表中

    需求:将A表中指定查询条件的数据,插入到B表中。 INSERT INTO ap_base_categories ( category_name, category_id, pare…

    技术杂谈 2023年7月11日
    078
  • Vue笔记:Vue3 Table导出为Excel

    1、安装 2、添加插件 在 src 目录下创建一个文件(vendor) 并添加Blob.js和Export2Excel.js,对 Export2Excel.js 添加了一段代码,可…

    技术杂谈 2023年5月31日
    0101
  • FineUIPro/Mvc/Core v7.0.0 正式发布了!

    FineUIPro/Mvc/Core v7.0.0 正式发布了,作为一个大版本升级,这个版本新增了很多实用的功能,FineUIPro在线示例数更是第一次突破了 900 个! 在列举…

    技术杂谈 2023年6月1日
    098
  • 背包问题(上)

    2. 01背包问题 有 (N) 件物品和一个容量是 (V) 的背包。每件物品只能使用一次。第 (i) 件物品的体积是 (v_i),价值是 (w_i)。求解将哪些物品装入背包,可使这…

    技术杂谈 2023年6月21日
    0108
  • nvm的使用

    nvm是node的版本管理工具 在windows下安装nvm-windows,下载地址 https://github.com/coreybutler/nvm-windows/rel…

    技术杂谈 2023年5月31日
    092
  • CentOS 文件管理

    一、目录管理 1.1、目录结构 1.2、切换目录 1.3、查看目录 1.4、创建目录 1.5、复制目录 1.6、剪切目录 1.7、删除目录 二、文件管理 2.1、查看文件 2.2、…

    技术杂谈 2023年7月10日
    060
  • 袭击Mercurial SCM(HG)

    这个叫水银的源代码管理工具尽管默默无闻,但还是得到了非常多团队的使用。 为了迎合某些团队的须要,我们也要用它来管理我们的代码。 今天的任务是先袭击学习。磨刀不误砍柴工。 对工具的掌…

    技术杂谈 2023年5月31日
    095
  • linux简单Socket编程-服务器端、客户端一对一连接

    一、服务器端、客户端连接示意图 注:(上述图片源于传智播客linux系统编程的视频截图); 二、服务器端、客户端代码 1、服务器端代码 #include #include #inc…

    技术杂谈 2023年7月11日
    089
  • 新书上市——Microsoft Teams 平台完全手册

    今年四月份左右开始写的这本书——《Microsoft Teams 平台完全手册》,经过多少个夜晚和周末的奋战,五一期间更是一刻都没有休息,键盘写坏一个,到今天也差不多可以完整地面世…

    技术杂谈 2023年5月31日
    081
  • api接口基础Day2

    十六进制的权: 16的0次幂————-1 16的1次幂————-16 16的2次幂————-256 16的3次幂———-…

    技术杂谈 2023年7月10日
    0109
  • Codeforces Round #751 (Div. 2)

    Codeforces Round #751 (Div. 2) A. Two Subsequences 思路分析: x实际上就是字符串里最小的字符。 剩下的便是y。 代码 #incl…

    技术杂谈 2023年7月24日
    081
  • LogisticRegressionwithaNeuralNetworkmindset

    文章内容为吴恩达深度学习第二周的编程作业 ipynbg格式代码及数据集–>陈能豆 密码: o1bn #!/usr/bin/env python coding: u…

    技术杂谈 2023年7月24日
    076
  • 使用本地自签名证书为 React 项目启用 https 支持

    简介 现在是大前端的时代,我们在本地开发 React 项目非常方便。这不是本文的重点,今天要分享一个话题是,如何为这些本地的项目,添加 https 的支持。为什么要考虑这个问题呢?…

    技术杂谈 2023年5月31日
    0108
  • 组合模式之对购物网站

    1、 实例概况 用组合模式对购物网站的商品进管理,绘制选择模式的结构图,并绘制该案例的类图,并编写代码演示结果,运行结果样例显示如右图所示。 2、所用模式结构视图 3、实例类图 4…

    技术杂谈 2023年7月23日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球