IDE を使用せずにこの単純化された例を入力したので、構文エラーは許してください。これを自動マップしようとすると、マッピングをコンパイルしようとすると FluentConfigurationException が発生します -
「関連付けはマップされていないクラスを参照してい
IEmployee
ます。」
これを解決すると、への参照にも遭遇したときに同様のエラーが発生すると思いますIEmployer
。ClassMap を手動で作成することに反対しているわけではありませんが、代わりに AutoMapper を使用することを好みます。
public interface IEmployer
{
int Id{ get; set; }
IList<IEmployee> Employees { get; set; }
}
public class Employer: IEmployer
{
public int Id{ get; set; }
public IList<IEmployer> Employees { get; set; }
public Employer()
{
Employees = new List<IEmployee>();
}
}
public interface IEmployee
{
int Id { get; set; }
IEmployer Employer { get; set; }
}
public class Employee: IEmployee
{
public int Id { get; set;}
public IEmployer Employer { get; set;}
public Employee(IEmployer employer)
{
Employer = employer;
}
}
使ってみまし.IncludeBase<IEmployee>()
たがだめでした。これは、IncludeBase をまったく呼び出さなかったように動作します。
ドメインエンティティでインターフェイスを使用しないか、手動で定義された ClassMap にフォールバックする唯一の解決策はありますか?
どちらのオプションも、アプリケーションの設計方法に重大な問題を引き起こします。すべての機能の実装が完了するまで永続性を無視しました。この間違いは二度と繰り返されません :-(