2017-06-14 79 views
0

我想使用實體框架創建具有WHERE條件的UNIQUE INDEX。如何使用實體框架創建具有Where子句的唯一索引

public class Person { 
    public string Name { get; set; }  

    public bool Expired { get; set; } 
} 

條件是僅當「過期」爲假時,名稱纔是唯一的。

指數應該是這樣的:

CREATE UNIQUE INDEX [IX_Person] 
    ON Person(Name) 
    WHERE [Expired] = 0; 

是否有某種方式來寫的代碼,第一,沒有在遷移到執行該SQL這一獨特的指數?

我可以這樣寫:

[Index("IX_Expired", IsUnique = true)] 
public bool Expired { get; set; } 

但我沒有找到一個方法來指定「WHERE」的一部分。

回答

1

有沒有辦法用代碼優先編寫此唯一索引,而不必在遷移中執行此SQL?

編號只能使用TSQL創建篩選索引,包含列的索引,分區索引,特定文件組上的索引,行或頁面壓縮的索引等。

相關問題