admin

未生成EF 6.1索引IsUnique

sql

我有以下代码第一个实体:

class Role
{
    [Key]
    public int Id { get; set; }
    [Index("NameIndex", IsUnique = true)]
    public string Name { get; set; }
}

但是在使用SQL Management Studio检查数据库时,存在多个具有相同名称的行:

ID=1, Name=admin
ID=2, Name=admin

我的情况很简单:

class MemberContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Role> Roles { get; set; }
}

检查SQL 2014 Express数据库表索引,不会生成任何索引(仅存在PK)。

有什么我需要做的工作才能使Index正常工作吗?


阅读 167

收藏
2021-06-07

共1个答案

admin

因此,我正在编写一个新类(由Autofac从DLL注入),并且主程序正在运行EF 6.0(而我的实用程序类项目正在使用EF 6.1)。

具体来说,我必须在字符串长度上设置长度限制,否则我将无法在其上放置索引(无法在varchar(max)上生成索引):

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

    [MaxLength(127)]
    [Index(IsUnique = true)]
    public string Name { get; set; }

    public virtual ICollection<User> Users { get; set; }
}
2021-06-07