EF Core - 添加唯一约束

Arc*_*729 4 entity-framework constraints unique asp.net-core

我想使用 ASP.NET Core 中的模型生成器添加唯一约束

  • .NET 5
  • EF 核心 5..

这是我发现的:

        modelBuilder.Entity<Ticker>()
            .HasIndex(r => r.Name)
            .IsUnique();
Run Code Online (Sandbox Code Playgroud)

然而,更新数据库后,它添加索引而不是约束。有没有办法添加约束?感谢你的回答。

Ren*_*ena 8

虽然你使用了.HasIndex(r => r.Name).IsUnique(),但它会创建一个独特的Index而不是Constraint。但效果是一样的。它将阻止您添加重复的值Name

然而,更新数据库后,它添加索引而不是约束。有没有办法添加约束?

如果您必须添加Constraint,我建议您使用允许HasAlternateKey您通过放置唯一约束来创建备用键的方法:

modelBuilder.Entity<Ticker>()
           .HasAlternateKey(r => r.Name);
Run Code Online (Sandbox Code Playgroud)

然后您可以看到它在数据库中添加了如下所示的唯一约束:

在此输入图像描述