自动映射以映射子表

时间:2017-07-24 08:35:20

标签: automapper

我的数据库中有3个表,这些是类:

var merged = {};
Object.assign(merged, result, resultresult);

所以,关系是: Prat - > Prat_Ric(Prat.Id = Prat_Ric.IdPrat) - > Anagrafi(Anagrafi.Id = Prat_Ric.IdAnag)

这些是目的地类:

public class PRAT
{
    public PRAT()
    {
        PRAT_RIC = new HashSet<PRAT_RIC>();
    }
    public int ID { get; set; }
    public string PRATICA { get; set; }
    public int ANNO { get; set; }
    public string VARIANTE { get; set; }
    [...] other fields
}
public class PRAT_RIC
{
    public int ID { get; set; }
    public int IDPRAT { get; set; }
    public int IDANAG { get; set; }
    public int? IDTITRIC { get; set; }
    public virtual ANAGRAFI IDANAGNavigation { get; set; }
}

public class ANAGRAFI
{
    public int ID { get; set; }
    public string TIPO { get; set; }
    public string TITOLO { get; set; }
    public string COGNOME { get; set; }
    public string NOME { get; set; }
    public string CODFISC { get; set; }
}

我用

创建了地图
public class PraticaResource
{
    public int ID { get; set; }
    public string PRATICA { get; set; }
    public int ANNO { get; set; }
    public string VARIANTE { get; set; }
    public ICollection<RichiedentiResource> RICHIEDENTI { get; set; }
}

public class RichiedentiResource
{
    public int ID { get; set; }
    public int IDANAG { get; set; }
    public string TITOLO { get; set; }
    public string COGNOME { get; set; }
    public string NOME { get; set; }
    public string CODFISC { get; set; }
    public string TITRIC { get; set; }
}

是否可以将RichiedentiResource的所有属性映射到具有相同名称的ANAGRAFI字段,以便我无法编写每个字段映射?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您不需要导航类中的任何内容,那么您可以在顶层映射时跳过它:

CreateMap<PRAT, PraticaResource>()
    .ForMember(p => p.PRAT_RIC, opt => opt.MapFrom(src => src.PRAT_RIC.Select(x => x.IDANAGNavigation))

然后你只需要ANAGRAFI - &gt;的映射。 RichiedentiResource,它应自动计算字段映射。