0

わかりました、まず、これが理にかなっていることを願っています。

次のアイデアに基づいて、アプリに流暢な自動マッピングを使用しようとしています。

public abstract class Container
{
  public virtual int Id {get; set};
  public virtual string Name {get; set;}
}

public class FirstSubClass : Container
{
   //properties and behaviour here
}

public class SecondSubClass : Container
{
  //properties of SecondSubclass Here
}

public class ProcessStep
{
   public virtual Container Source {get; set}
   public virtual Container Destination {get; set;}
}

ただし、スキーマを生成したり、(SQLite などを使用して) マッピングをテストしたりしようとすると、次の点に注意して失敗します。

NHibernate.MappingException : テーブル ProcessStep からの関連付けが、マップされていないクラスを参照しています: ......Entities.Container

Container クラスを変更して抽象化しないと、機能します。

基本は抽象のままで、基本型に対してエンティティのプロパティを公開できますか?

どんな助けでも感謝します。

4

1 に答える 1

4

デフォルトでは、Fluent Nhibernate は、マッピングを生成するときに抽象基本クラスを無視します。それを含めるには、 IncludeBaseメソッドを使用する必要があります。

AutoMap.AssemblyOf<Container>(cfg)
       .IncludeBase<Container>();
于 2011-04-08T06:15:24.490 に答える