C# 在模型级别定义具有唯一键的实体

C# 在模型级别定义具有唯一键的实体,c#,asp.net-core,asp.net-core-mvc,entity-framework-core,C#,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,使用asp.net 5 entity framework 7,我想在模型级别定义一个具有唯一键约束的字段。我不是说主键。我相信EF 6曾经是这样的: [Key] public int Id{ get; set; } [Index("IX_UserName", 1, IsUnique = true)] public string UserName {get; set;} 您可以在OnModelCreating覆盖中配置此选项。看 例如: class MyCont

使用asp.net 5 entity framework 7,我想在模型级别定义一个具有唯一键约束的字段。我不是说主键。我相信EF 6曾经是这样的:

    [Key]
    public int Id{ get; set; }

    [Index("IX_UserName", 1, IsUnique = true)]
    public string UserName {get; set;}

您可以在
OnModelCreating
覆盖中配置此选项。看

例如:

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Index(b => b.Url)
            .Unique();
    }
}
class MyContext:DbContext
{
公共数据库集博客{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity()
.Index(b=>b.Url)
.Unique();
}
}

请尝试使用
[UniqueKey]
only@tinka,EF7中似乎没有UniqueKey属性。感谢您的帮助和链接。在我看来,仅仅在模型本身中定义它会更简单,但无论如何。。。