2015-01-07 21 views
0

我有一個問題得到Add-Migration創建正確的migration.CreateIndex()調用。我有一個POCO這樣的: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; } 
} 

從這個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創建索引intead,這似乎覆蓋我的索引。

任何人都知道如何使用EF Code First生成兩個重疊的索引並讓EF Migrations生成正確的輸出?

回答