使用流畅的nhibernate创建非群集主键

时间:2014-04-15 14:18:51

标签: c# sql-server-2008 fluent-nhibernate

假设我有以下表格:

 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;]列,就像聚集索引一样,但我无法弄清楚如何去做这个。谢谢你的关注!

1 个答案:

答案 0 :(得分:-1)

<强> SOLUTION:

public class CustomMsSql2008Dialect : MsSql2008Dialect
        {
            public override string PrimaryKeyString
            {
                get { return "primary key nonclustered"; }
            }           

        }

现在在配置初始化中使用像Dialect这样的CustomMsSql2008Dialect我不会有像聚簇索引这样的主键,id会是非聚簇索引。