代码之家  ›  专栏  ›  技术社区  ›  the Tin Man

使用Hilo生成器时,Fluent NHibernate_

  •  0
  • the Tin Man  · 技术社区  · 15 年前

    基本上我想做的和 this question 但用流利的氨气。

    下面是我的ID生成约定:

        public class IdGenerationConvention : IIdConvention
        {
                public void Apply(IIdentityInstance instance)
                {
                        instance.GeneratedBy.HiLo("1000");
                }
        }
    

    现在这很有效,但是所有的类最终都使用相同的 next_hi .

        create table hibernate_unique_key (
                next_hi INTEGER 
        )
    

    有人知道如何指定每个类应该使用它自己的类吗 第二世 ?

    为了澄清,我想以 customer_next_hi order_next_hi ,假设它基于列工作。如果它是基于行的,那么也可以,只要每个实体都知道要为它使用哪一行 第二世 价值。

    3 回复  |  直到 12 年前
        1
  •  1
  •   Henry Wilson    12 年前

    在安东尼·德维特的博客上有一个很好的解决方案: http://www.anthonydewhirst.blogspot.co.uk/2012/02/fluent-nhibernate-solution-to-enable.html

        2
  •  0
  •   the Tin Man    15 年前

    我在Fluentnhibernategoogle组中也提出了这个问题,并且似乎唯一的方法就是创建一个从hilo或tablegenerator继承的自定义ID生成器类。据我所知,关键问题是创建种子表的SQL语句只执行一次,并且没有内置的重写或钩子来让它创建实体特定的列或行。

    所以有点像 this 这是我需要做的。一旦我有了一个有效的实现,我将再次发布。

        3
  •  0
  •   UpTheCreek    15 年前

    有意思的问题,但我想知道你为什么要这样做?在(相当小的)缺点上,您将生成更多的DB请求。从上面看,你的代理ID空间会增加一些因素。但长/大不足以让它们结合在一起吗?(最大18446744073709551615 ID!)