我在Add-Migration
创建正确的migration.CreateIndex()
电话时遇到问题。我有这样的POCO:
class MyPoco
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Index("IX_Test", 1)]
int PartitionId { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
int LocalId { get; set; }
[Index("IX_Test", 2)]
int LocalId2 { get; set; }
}
从此Add-Migration
生成CreateIndex("dbo.MyPoco", "LocalId2", unique: true, name: "IX_Test");
。我期待CreateIndex("dbo.MyPoco", new[] { "PartitionId", "LocalId2" }, unique: true, name: "IX_Test");
之类的东西
根本原因似乎是EF模型每个属性只能有一个索引注释(生成的迁移EDMX中为customannotation:Index="{ Name: IX_Test, Order: 2, IsUnique: True }"
)。由于我不使用数据库生成的密钥,因此EF会创建一个索引整数,它似乎会覆盖我的索引。
任何人都知道如何使用EF Code First生成两个重叠索引并让EF Migrations生成正确的输出吗?
答案 0 :(得分:0)