Add-Migration
을 올바르게 작성하는 데 문제가 있습니다. migration.CreateIndex()
호출. 나는이 같은 POCO이이 Add-Migration
에서이주를 사용하는 CodeFirst의 다중 중복 인덱스
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; }
}
는 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 }"
). 그리고 DB 생성 키를 사용하지 않기 때문에 EF는 인덱스를 생성합니다. 인덱스는 내 인덱스보다 우선합니다.
누구나 EF 코드 우선을 사용하여 두 개의 중복 색인을 생성하고 EF 마이그레이션에서 올바른 출력을 생성하는 방법을 알고 있습니까?