編集
いくつかのクラスのベースにしたいインターフェースがあります。BuildSchema(またはUpdateSchema)に移動すると、Nhibernateはインターフェイスのテーブルを作成します。私は次のような回避策を見つけたと思いました:
インターフェイスとクラス:
public interface ILevel
{
int Id { get; set; }
string Name { get; set; }
}
public abstract class Level : ILevel
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class LevelOne : Level { }
public class LevelTwo : Level { }
マッピング:
public class LevelMap : ClassMap<ILevel>
{
public LevelMap()
{
Id(x => x.Id);
Map(x => x.Name);
}
}
public class LevelOneMap : SubclassMap<LevelOne>
{
}
public class LevelTwoMap : SubclassMap<LevelTwo>
{
}
これは機能しません(別のUpdateSchemaを実行すると、厄介なILevelテーブルが表示されました)。
インターフェイス/抽象クラスを完全に無視することに気付いていない構成はありますか?