在执行“dotnet run”后,在IDE和控制台窗口中都从Mac上的Visual Studio Code中收到以下消息:
找不到类型或 namespace 名称“IndexAttribute”
我有一个名为Story的类,我想将其用于使用Code First生成数据库。此类具有一个标有KeyAttribute的主键和一个标有MaxLengthAttribute的Author字符串,因此两者都可以工作(使用System.ComponentModel.DataAnnotations)。另外两个字段DateTime Date和bool IsPublished已应用IndexAttribute(这是一个两列索引)。我将其明确命名为IX_DatePublished,IsUnique = false,并在日期字段中使用Order = 1,在IsPublished字段中使用Order = 2。
谢谢!
最佳答案
自从您提出问题以来,情况似乎已经改变。 jsakamoto 已经实现了NuGet包,该包允许您保留[Index]属性。唯一的区别是变量的顺序。您不能再将Order=0
作为最后一个变量,而是:
[Index("IX_TreeFiddy", 0, IsUnique = false)]
public string LochNessMonster { get; set; }
[Index("IX_TreeFiddy", 1, IsUnique = false)]
public int CentsGiven { get; set; }
覆盖OnModelCreating()
// Override "OnModelCreating"
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// .. and invoke "BuildIndexesFromAnnotations"!
modelBuilder.BuildIndexesFromAnnotations();
}
这里是链接:IndexAttribute for .NET Core NuGet package