ef数据迁移(代码片段)

chenh chenh     2023-02-26     122

关键词:

在项目中使用Entity Framework的Code First模式,进行数据迁移时,Migration文件夹中存放的是每一次Entity的修改如何同步到数据的操作方法,每个文件中都只有Up和Down这两个方法。例如第一次数据迁移时,会创建数据表,在程序包管理控制台中输入命令:add-migration migrationname,会生成一个migrationname.cs的文件,在对应的Migration类文件的代码如下:

public partial class Initial : Migration
    
        protected override void Up(MigrationBuilder migrationBuilder)
        
            migrationBuilder.CreateTable(
                name: "Posts",
                columns: table => new
                
                    Id = table.Column<int>(nullable: false)
                        .Annotation("Sqlite:Autoincrement", true),
                    Title = table.Column<string>(nullable: true),
                    Author = table.Column<string>(nullable: true),
                    Body = table.Column<string>(nullable: true),
                    LastModified = table.Column<DateTime>(nullable: false)
                ,
                constraints: table =>
                
                    table.PrimaryKey("PK_Posts", x => x.Id);
                );
        

        protected override void Down(MigrationBuilder migrationBuilder)
        
            migrationBuilder.DropTable(
                name: "Posts");
        
    

再在程序包管理控制台中输入命令:update-database,即可将Entity的设计同步到数据库中。

当后期对Entity进行了修改时,再次运行 add-migration migrationname 和update-database这两个命令,即可再生成一个同步文件,并将修改更新到数据库中。

注意两个问题:

  1、不能随意删除Migration文件夹内的同步文件,否则数据同步会失败,问题解决很麻烦。

  2、每次add-Migration时取的文件名不能重名

  

20.2.翻译系列:ef6中基于代码的数据库迁移技术ef6code-first系列(代码片段)

...,你学习了自动迁移技术,当实体改变的时候,自动进行数据库迁移。这里你将会学习基于代码的数据库迁移技术。基于代码的数据库迁移技术,在迁移的时候,提供了更多的控制。例如允许你配置添加额外的字符串,例如设置... 查看详情

使用fluentmigrator进行数据库迁移(代码片段)

介绍在开发的过程中,经常会遇到数据库结构变动(表新增、删除,表列新增、修改、删除等)。开发环境、测试环境、正式环境都要记性同步;如果你使用EF有自动迁移的功能,还是挺方便的。如果非EF我们需要手工处理,有... 查看详情

c#entityframeworkcodefirst迁移(代码片段)

...的是CodeFirst工作流,推荐使用CodeFirst迁移改进应用程序的数据库架构。 迁移提供一组允许以下操作的工具:创建可用于EF模型的初始数据库生成迁移以跟踪对EF模型所做的更改使数据库随时掌握这些更改下方演练将概述实体... 查看详情

ef配置实现建表与迁移(代码片段)

 通过EF作为操作数据库的工具有一段时间了,也做了几个相对不大的项目,慢慢的也对EF的使用摸索出来了一些规则,虽然说不是技术难点,但是,我说的是但是,能够提高我们开发效率的棉花糖有时我们还是必须要吃的,... 查看详情

20.1翻译系列:ef6中自动数据迁移技术ef6code-first系列(代码片段)

...列:EF6Code-First默认约定(EF6Code-First系列)5.翻译系列:EF6中数据库的初始化(EF6Code-First系列)6.翻译系列:EF6Code-First中数据库初始化策略(EF6Code-First系列7.翻译系列:EF6中的继承策略(EF6Code-First系列)8.翻译系列:EF6中配置领域类(EF... 查看详情

使用 EF 代码优先迁移仅为初始数据插入身份

】使用EF代码优先迁移仅为初始数据插入身份【英文标题】:IdentityInsertjustforinitialDatawithEFCode-FirstMigrations【发布时间】:2019-02-2104:04:03【问题描述】:我目前正在尝试将一些本地数据引入使用EFCode-First迁移的数据库。这些数据已... 查看详情

如何禁用代码优先迁移

...:我在EF5中有一个代码优先的实体模型。但我想手动管理数据库更改——我不希望EF修改我现有的数据库及其所有数据。但是当我在EF映射和数据库中进行并行更改时,EF拒绝正常运行,告诉我需要先使用代码迁移。如何关闭此功... 查看详情

entityframeworkcodefirst模式下使用数据迁移(代码片段)

启用数据迁移在程序包管理控制台选择安装了EntityFramework的项目,键入如下指令以启EF用数迁移。Enable-Migrations命令成功运行后,所选项目下会添加名为Migrations的文件夹及Configuration.cs文件,如下图。 创建迁移版本程序包管理... 查看详情

ef迁移显示空的up()down()方法(代码片段)

我有一个当前的第二个版本的本地数据库,现在应该转到它的第三个版本。以前迁移的代码是由另一个程序员生成的,所以我假设我在这里做错了。在我的模型中有大约30个类,在模型文件夹中有一个映射文件夹,它包含这30个... 查看详情

ef6自定义迁移表名

在下列代码片段中已经EF6迁移表的表名更改为MigrationHistory注意:下代码片段建议和DbContext同程序集1publicclassModelConfiguration:DbConfiguration2{3publicModelConfiguration()4{56varconn=System.Configuration.ConfigurationManager.Connectio 查看详情

添加新迁移时,EF 数据迁移不会检测到更改

】添加新迁移时,EF数据迁移不会检测到更改【英文标题】:EFDatamigrationswon\'tdetectchangeswhenaddingnewmigration【发布时间】:2013-03-2419:14:05【问题描述】:我首先使用EntityFramework5.0数据迁移和代码。当我向模型添加新字段并在包管理... 查看详情

dotnet ef 迁移 name dotnet ef 数据库更新

】dotnetef迁移namedotnetef数据库更新【英文标题】:dotnetefmigrationsnamedotnetefdatabaseupdatedotnetef迁移namedotnetef数据库更新【发布时间】:2016-10-1323:10:13【问题描述】:我今天首先学习EntityFramework核心和代码,通过在复数网站上观看视频... 查看详情

ef的批量操作(代码片段)

之前在一个临时迁移数据的项目中需要使用到EF针对Mysql的批量操作,因为该项目具备以下条件:是临时性的,数据掐迁移完成后就不再使用,同时有一定的效率要求项目中的实体在其他项目中都是基于EF的,已经写好了Model考虑... 查看详情

EF 迁移 - 数据库中已有一个名为“”的对象

】EF迁移-数据库中已有一个名为“”的对象【英文标题】:EFMigrations-Thereisalreadyanobjectnamed\'\'inthedatabase【发布时间】:2016-11-0318:17:18【问题描述】:我在向我的数据库添加新表时遇到问题。这些是我在尝试添加新迁移时输入的命... 查看详情

ef架构~codefirst从初始化到数据库迁移

...模式,即代码优先,它以业务代码为主,通过代码来生成数据库,并且加上migration的强大数据表比对功能来生成数据库版本,让程序开发人员不用维护数据库的变更,而直接维护migration即可,在它里面有你当前版本和过去历史版... 查看详情

ef架构~codefirst从初始化到数据库迁移

...模式,即代码优先,它以业务代码为主,通过代码来生成数据库,并且加上migration的强大数据表比对功能来生成数据库版本,让程序开发人员不用维护数据库的变更,而直接维护migration即可,在它里面有你当前版本和过去历史版... 查看详情

代码优先迁移中列的 EF6 Oracle 默认值

...我正在尝试编写一个迁移,使用EntityFramework6为我的Oracle数据库中的NUMBER列设置默认值。这是我第一次尝试没有设置默认值:publicoverridevoidUp()AddColumn("MT 查看详情

EF 迁移控制日志记录 SQL

...时间】:2018-08-1315:51:09【问题描述】:我有一些用于创建数据库和应用迁移的代码:publicstatic(ServerServer,stringConnectionString)InitializeServerAndDatabase(stringdatabaseName,stringdefaultConnection 查看详情