私は流暢な nHibernate で自動マッピングを使用しています。
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c
.Server("(local)\\sql2008")
.Database("nHibernate_test")
.TrustedConnection()))
.Mappings(m => m.AutoMappings.Add(
AutoMap.AssemblyOf<Domain.Airport>(cfg)
.UseOverridesFromAssemblyOf<ReaderMappingOverride>()
))
私のオーバーライドクラスは次のようなものです:
public class ReaderMappingOverride : IAutoMappingOverride<Domain.Reader>
{
public void Override(AutoMapping<Domain.Reader> mapping)
{
//use the reader ID as identifier of the class, instead of the ID field defined in superclass Entity
mapping.IgnoreProperty(r => r.Id);
mapping.Id(r => r.ReaderNumber);
}
}
ここで、 Reader は抽象基本クラスです。サブクラスごとに個別のオーバーライド クラスを使用すると、問題なく動作します。抽象クラスのすべてのサブクラスのオーバーライドを定義する方法はありますか?
ありがとう、
ジョニー