繁体   English   中英

如何在 .net core razor 页面中向迁移添加额外属性而不删除 EF 核心中的先前迁移或数据库

[英]How to add Extra properties to migration in .net core razor pages without deleting the previous migration or database in EF core

我是 Asp.Net 核心的新手,正在制作一个项目 Asp.Net 核心剃须刀页面。 所以我在我的项目中使用 EF 核心作为注册模块我想添加我自己的额外字段以及 EF 核心提供的功能。所以我创建了一个带有附加字段的用户类。 并添加了从包管理器控制台迁移。 并更新了数据库。但问题是当我添加 1 个属性并尝试迁移它时给出错误。所以我所做的是我从迁移文件夹中删除了迁移并删除了数据库并使用新属性生成了迁移. 但当然这不是一个好方法,请任何人都可以在不删除数据库的情况下提出正确的方法。

ApplicationUser.cs 文件

 public class ApplicationUser : IdentityUser
{
    public string FullName { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string PostalCode { get; set; }

}

使用代码优先方法进行更新几乎不需要数据库优先方法。

最初,您必须为项目启用迁移

Enable-Migrations -ContextTypeName DBNAME.StoreContext

这将使用 Configuration.cs 文件创建一个迁移文件夹。 接下来,我们需要运行迁移。 这是您需要向现有数据库添加额外步骤的地方。 如果我们现在创建一个迁移,它将尝试将我们所有的实体添加到数据库中。 这将不起作用,因为数据库中已经存在其他表,因此我们需要创建一个初始空白迁移,然后我们将能够为任何新更改添加迁移。 要创建空白迁移,请执行此命令

Add-Migration InitialCreate -IgnoreChanges

该命令的关键部分是 -IgnoreChanges 标志,它确保创建的迁移实际上什么都不做。 运行它将向数据库中的迁移表添加一个条目,从而创建其原始模式的快照。

接下来,运行 update-database 命令以使用初始迁移更新现有数据库。 现在将在DBNAME数据库中创建一个新的迁移表。

在此之后,您可以添加属性,然后执行此语句Add-Migration add_classname_propertyname

运行之后, update-database命令就可以开始了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM