次のような状況があります。
db エンティティを持つAssemblyXは、外部のassemblyYを参照し、そのクラスを基本クラスとして使用します。 AssemblyXは、必要に応じていくつかのナビゲーション プロパティを追加します。
もちろん、このすべてのエンティティをコピーして automapper を使用して問題を解決できますが、既存のエンティティを継承する理由があります。
したがって、 assemblyY にFoo {}クラスがあり、assemblyXに作成Bar: Foo {}します。流暢な自動マッピングを無視するように構成しFoo (.IgnoreBase<Foo>())ます。すべてがうまくいきます。しかし、assemblyYには、 を参照するナビゲーション プロパティを持つ別のエンティティRab(流暢な自動マッピングでカバーされる) がありますFoo。これにより、「テーブル Rab からの関連付けは、マップされていないクラスを参照しています: Foo」という例外が発生します。
public class Foo // .IgnoreBase<Foo>() - I require only derived Bar in DB
{
public virtual Guid Id {get; set;}
}
public class Bar: Foo
{
public virtual Guid Id {get; set;}
// Some new properties
}
public class Rab
{
public virtual Guid Id {get; set;}
public virtual Foo Foo // reference to unmapped class, I could not change type to Bar (external assembly)
}
どうすれば解決できますか。Rab を継承しnew Fooて Bar 型でプロパティを作成しようとしましたが、うまくいきませんでした。
アドバイスをよろしくお願いします。