如何解决使用Entity Framework在.NET Core 3.1中进行迁移后,如何更新数据库模型?
我是新来的,请原谅。
我上了这个课:
public class Genre
{
public int Id { get; set; }
[Required]
[StringLength(40)]
[Index(IsUnique = true)] //-----------------------> new change
public string Name{ get; set; }
}
在我的第一个迁移过程Initial
中,我忘记了[Index(IsUnique = true)]
属性,该属性使Name
字段唯一。因此,现在我想更新数据库模型以使更改生效。
我安装了软件包using System.ComponentModel.DataAnnotations.Schema;
以便能够使用unique
属性。
我运行的命令是:
EntityFrameworkCore\Add-Migration Initial
EntityFrameworkCore\update-database
显然我不能做类似的事情:
EntityFrameworkCore\Add-Migration change_attribute_name
EntityFrameworkCore\update-database
更新数据库模型,并更新了unique
字段上的Name
属性。
我想用新的更改更新数据库的模型。我该怎么做?最好的方法是什么?
注意:我的SQL Server数据库尚无数据。
也许我做得很好,您知道为什么没有在数据库模型中添加unique
属性吗?
(在西班牙语中,Genero = Genre和Nombre = Name)
解决方法
编辑
在EF核心中,您需要使用tbl.plot.bar(legend=False);
文件中的Fluent API通过以下方式应用唯一索引:
;
自从您提到以来,您数据库中还没有任何数据,您可以使用
来还原所有已应用的迁移 ApplicationDbContext.cs
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Genre>()
.HasIndex(u => u.Name)
.IsUnique();
}
表示您要取消应用所有迁移。
然后,您可以使用删除您的生成的迁移
Update-Database -Migration 0
最后,使用新更改再次添加迁移
-Migration 0
更改模型并尝试添加迁移
添加迁移您的迁移名称
然后运行
更新数据库
此命令肯定对您有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。