Fluent Nhibernate 1.0 - 在类和已连接的子类之间指定外键约束名称

And*_*ndy 12 nhibernate foreign-key-relationship fluent-nhibernate joined-subclass

我认为这应该很简单,但我无法弄清楚如何做到这一点.假设我有以下地图:

public class AnimalMap : ClassMap<Animal> { Id( x => x.Id); }

public class CatMap: SubclassMap<Cat> {
    Extends<AnimalMap>();
    Map(x => x.IsDomestic);
}
Run Code Online (Sandbox Code Playgroud)

这就像我期望的那样创建表:

Animal
------
Id

Cat
----
AnimalId : FK to Animal (named FK3500ABA0D)
IsDomestic
Run Code Online (Sandbox Code Playgroud)

如上所述,FK由db生成,最终为FK3500ABA0D.我想要做的就是设置该约束的名称,但是我找不到如何通过Fluent NHibernate(或者实际上甚至简单的NHibernate)来做到这一点.

那么,我错过了什么?

zcr*_*r70 22

流利的NH确实允许这样:

public class ReferenceConvention : IReferenceConvention{
     public void Apply(IManyToOneInstance instance) {
          instance.ForeignKey(string.Format("FK_{0}_{1}",
               instance.EntityType.Name,
               instance.Name));
     }
}
Run Code Online (Sandbox Code Playgroud)

您还需要以IHasManyConventionIHasManyToManyConvention上述相同的方式实施.


Die*_*hon 1

我不知道 FluentNH 是否支持,但是 XML 很简单:

<joined-subclass name="Cat">
  <key column="AnimalId" foreign-key="NameOfTheFK"/>
</joined-subclass>
Run Code Online (Sandbox Code Playgroud)