我有以下代码第一个实体:
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正常工作吗?
因此,我正在编写一个新类(由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; } }