我正在評估在當前項目中使用ServiceStack的OrmLite,並且需要對創建的索引進行一些控制;我希望儘可能通過數據註釋來控制這些內容。在SQL Server 2012上使用ServiceStack OrmLite創建非聚集索引
不幸的是,我沒有運氣強迫非序列ID的索引是非集羣的。使用下表模型:
[Alias("Players")]
public class Player
{
[Index(Unique = true, NonClustered = true)]
public Guid Id { get; set; }
[Required]
[StringLength(128)]
public string Url { get; set; }
}
的CreateTableIfNotExists<Player>()
方法似乎忽略指示以創建非聚集索引,並且創建聚集酮代替(這將導致index fragmentation and poor performance):
我在這裏錯過了什麼?
注意:這是與OrmLite 4.0.52,使用SqlServer2012Dialect
供應商。
感謝您的信息。由於這些屬性參數什麼都不做/無聲無息,爲什麼它們完全存在? – easuter
@easuter'[Index]'屬性僅用於在其他非主鍵屬性上創建索引。主鍵上可以使用'[PrimaryKey]'和'[AutoIncrement]'屬性。 – mythz
我明白這一點,但我沒有詢問關於創建主鍵的問題,我問爲什麼'[Index]'屬性的'NonClustered'參數簡單地失敗了,而不是例如引發'NotImplementedException'。爲什麼NonClustered和Clustered參數存在,如果他們沒有任何目的? – easuter