【问题标题】:Create non clustered primary key with fluent nhibernate使用流利的 nhibernate 创建非集群主键
【发布时间】:2014-04-16 01:18:35
【问题描述】:

假设我有下表:

 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) 设置为像聚集索引一样,但我真的不想要它。我希望 ["IsMain"] 列成为聚集索引。我想使用流利的 Nhibernate 将 ["IsMain"] 列设置为聚集索引,但我不知道该怎么做。感谢您的关注!

【问题讨论】:

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


    【解决方案1】:

    解决方案:

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

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

    【讨论】:

    • 使用这种方法,所有 PrimaryKey 都将是非集群的,但只有一个应该是
    • 是的,我知道,这是我的问题的标题,所以你的否决票是没有根据的。为了投反对票,你应该为我们提供更好的解决方案,然后再投反对票。
    猜你喜欢
    • 2011-03-28
    • 2011-01-09
    • 2013-11-07
    • 2012-05-29
    • 2011-01-18
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多