2017-09-23 72 views
1

這是我正在嘗試創建的超級簡單類。實體框架的「索引」裝飾未創建索引

public class Company 
{ 
    public int ID { get; set; } 

    [Column(TypeName = "VARCHAR(254)")] 
    [Index] 
    public string Name { get; set; } 

    [Index] 
    public int stupidField { get; set; } 
} 

我的目標是迫使Name是唯一的,所以我加了裝飾[Index(IsUnique = true)]。但是沒有創建唯一的索引,所以我想我會首先嚐試解決創建任何索引的更簡單的問題。因爲我讀here指數不能爲varchar(max)類型的列創建索引,所以我限制了Name字段的長度。仍然沒有運氣。我甚至嘗試了一些限制字段長度的不同語法,但仍然沒有索引。

要查看除字符串長度以外的東西是否在播放中,我創建了整數字段stupidField,但我無法將該字段編入索引。所以現在我完全不知道什麼可能是錯的。請幫幫我!

Check out this screenshot來自MS SQL Server Management Studio,它顯示我的字段正在創建但不是索引。

注意:我確定遷移不是問題。 我在SO上讀過的一些人正在更新他們的類,但這些更改沒有反映在數據庫中,因爲他們的遷移有問題。這在這裏沒有關係。我刪除數據庫並在每次更改時重新創建它。 (我甚至做了像重命名我的領域,只是爲了確保我仍然可以影響數據庫愚蠢的變化。)

回答

0

原來我實際上使用實體框架核心,而不是實體框架。在Entity Framework Core中,雖然可以使用流暢的API創建索引,但不能使用屬性創建索引。 See Microsoft's documentation.