次のような状況があります。
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 型でプロパティを作成しようとしましたが、うまくいきませんでした。
アドバイスをよろしくお願いします。