2011-03-23 38 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