多対多の関係をどのようにマッピングしますか?
1対1の関係は簡単です....
仮定すると...
public class ProductDTO
{
public int Id { get; set; }
public string Name { get; set; }
public int SupplierId { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public double Cost { get; set; }
public Supplier Supplier { get; set; }
}
public class Supplier
{
public int Id { get; set; }
public string Name { get; set; }
public int Rating { get; set; }
public ICollection<Product> Products { get; set; }
}
Mapper.CreateMap<Product, ProductDTO>()
.ForMember(d => d.SupplierId, m => m.MapFrom(s => s.Supplier.Id));
すべての製品に 1 つのサプライヤーしかなく、1 つのサプライヤーが多くの製品を持つことができると仮定して機能します。製品に多くのサプライヤーがいる可能性がある場合、どのようにマッピングすればよいですか?
製品のサプライヤー行を次のように変更しました
public ICollection<Supplier> Supplier { get; set; }
そしてProductDTOで同じことをしています
public ICollection<int> SupplierId { get; set; }
Id がコレクションになったので、CreateMap を変更するにはどうすればよいですか? オートコンプリートに Id が表示されなくなり、取得できるのは関数だけです。
私はC#を初めて使用するので、明らかな何かが欠けていることがよくあります。for ループを反復処理して、ID を 1 つずつマップする必要がありますか?