2011-03-23 36 views
0

我想在兩列上創建一個非聚簇但唯一的索引。 我想:如何使用流暢的NHibernate創建唯一的非結合索引

Map(x => x.Col1).Index("IX").UniqueKey("IX"); 
Map(x => x.Col2).Index("IX").UniqueKey("IX"); 

,並得到非唯一索引和額外的唯一約束(切換順序沒有幫助),

或:

Map(x => x.Col1).Index("IX").Unique(); 
Map(x => x.Col1).Index("IX").Unique(); 

,並得到非唯一索引和2個額外的唯一約束(切換順序不起作用)。

有沒有辦法只創建索引,但唯一?

回答

2

如果我離開了.Index()和只寫

Map(x => x.Col1).UniqueKey("IX"); 
Map(x => x.Col2).UniqueKey("IX"); 

我得到了2008年的SQL Express(R2)唯一的非聚集索引沒有任何額外的限制。 (至少在我查看SQL Management Studio中的porperties時顯示。)

+0

謝謝。這會生成不同的SQL腳本,但結果幾乎「相同」。您會得到唯一的約束和一個額外的唯一索引,而不僅僅是唯一的索引。更多信息在這[問題](http://stackoverflow.com/questions/3978680/constraint-is-key-is-index-is-constraint) – eitanpo 2011-03-27 14:09:22