私はクラス従業員を持っています:
public partial class Employee
{
public Employee()
{
this.Employees1 = new HashSet<Employee>();
}
public int Id { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public Nullable<int> ReportsToId { get; set; }
public virtual ICollection<Employee> Employees1 { get; set; }
public virtual Employee ReportsTo { get; set; }
}
そして、このためのビューモデル:
public class EmployeeEditModel : MappedViewModel<Employee>
{
public int Id { get; set; }
public string Surname { get; set; }
public string FirstName { get; set; }
public string Email { get; set; }
public int? ReportsTo { get; set; }
}
MappedViewModel<T>
メソッドを宣言します。
public class MappedViewModel<TEntity>: ViewModel
{
public virtual TEntity MapToEntity()
{
return (TEntity)Mapper.Map(this, GetType(), typeof(TEntity));
}
}
アクションメソッドを呼び出すMapToEntity
と、
AutoMapper から例外が発生し、次のメッセージが表示されます。
タイプ マップ構成が欠落しているか、サポートされていないマッピングです。
マッピング タイプ: Int32 -> Employee System.Int32 -> Leave.Data.Employee
宛先パス: Employee.ReportsTo.ReportsTo
ソース値: 5
私のマッピングは次のように定義されています。
public static void RegisterMaps()
{
Mapper.CreateMap<Employee, EmployeeCreateModel>();
Mapper.CreateMap<EmployeeCreateModel, Employee>();
}
二重参照Employee.ReportsTo.ReportsTo
は、この例外がある種の周期的なマッピングの癖によって何らかの形で引き起こされていることを私に叫びますが、これについて何ができますか? 少なくともReportsTo
、マッピングを省略して、 を呼び出した後に手動でこれを行うだけですMapToEntity
。どうすればこれを解決できますか?むしろ、AutoMapper の問題のこのパターンに対して何をすべきでしょうか?