假设我有以下表格:
public class ResourcePossibleUm : EntityBase
{
public virtual bool IsMain { get; set; }
public virtual double UmMass { get; set; }
-------
}
并映射:
public class ResourcePosibleUMMap : ClassMap<ResourcePossibleUm>
{
public ResourcePosibleUMMap()
{
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.IsMain);
Map(c => c.UmMass);
}
}
我正在使用 sql server 2008 。 默认情况下,sql server 2008会将我的主键(Id)设置为聚集索引,但我真的不想要它。我希望[&#34; IsMain&#34;]列成为聚集索引。我想使用流畅的Nhibernate设置[&#34; IsMain&#34;]列,就像聚集索引一样,但我无法弄清楚如何去做这个。谢谢你的关注!
答案 0 :(得分:-1)
<强> SOLUTION:强>
public class CustomMsSql2008Dialect : MsSql2008Dialect
{
public override string PrimaryKeyString
{
get { return "primary key nonclustered"; }
}
}
现在在配置初始化中使用像Dialect这样的CustomMsSql2008Dialect我不会有像聚簇索引这样的主键,id会是非聚簇索引。