NH 3.3.1 を使用しています。単純なクラスを仮定します:
public class TestBase
{
public virtual int Id { get; set; }
public virtual string A { get; set; }
}
public class Test : TestBase
{
public virtual string B { get; set; }
}
およびそれらのマッピング:
public sealed class TestBaseMap : ClassMap<TestBase>
{
public TestBaseMap()
{
this.Polymorphism.Explicit();
this.Id(a => a.Id).GeneratedBy.Identity();
this.Map(a => a.A);
}
}
public sealed class TestMap :SubclassMap<Test>
{
public TestMap()
{
this.Map(a => a.B);
}
}
Polymorphism.Explicit() が指定されていても、NH は TestBase を照会するときに Test を結合したままです。
var a = this.Session.Get<TestBase>(1);
サブクラスがたくさんあるので、この参加は本当に必要ありません。fluent で生成された xml を確認しました。大丈夫です、「明示的な」句があります。私は何を間違っていますか?