小编典典

Entity Framework Core 添加唯一约束代码优先

all

我找不到使用属性向我的字段添加唯一约束的方法:

public class User
{
    [Required]
    public int Id { get; set; }

    [Required]
    // [Index("IX_FirstAndSecond", 2, IsUnique = true)] not supported by core
    public string Email { get; set; }

    [Required]
    public string Password { get; set; }
}

我正在使用这些软件包:

 "Microsoft.EntityFrameworkCore": "1.0.1",
 "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
 "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
 "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",

阅读 185

收藏
2022-05-18

共1个答案

小编典典

在 EF 核心上,您无法使用数据注释创建索引。但您可以使用 Fluent API 来创建索引。

像这样在你的{Db}Context.cs

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<User>()
        .HasIndex(u => u.Email)
        .IsUnique();
}

…或者,如果您将重载与 buildAction 一起使用:

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<User>(entity => {
        entity.HasIndex(e => e.Email).IsUnique();
    });
}

你可以在这里阅读更多关于它的信息: 索引

2022-05-18