使用Automapper实现多对多关系

时间:2015-05-17 04:09:51

标签: asp.net-mvc entity-framework automapper

我试图将Automapper用于多对多关系和实体框架。

这是我的实体:

public class ZChangeUnits
{
    [Key]
    public string CCode1 { get; set; }
    [ForeignKey("CCode1")]
    public virtual ZUnits ZUnits1 { get; set; }

    [Key]
    public string CCode2 { get; set; }
    [ForeignKey("CCode2")]
    public virtual ZUnits ZUnits2 { get; set; }

    public decimal NZarib { get; set; }
}

这是ZUnit实体:

[Key]
public string CCode { get; set; }

public string CTitle { get; set; }

public string CMGCode { get; set; }
public virtual ZCodes ZCodes { get; set; }  

我想将它们映射到此ViewModel,可能我应该删除标题:

public class ChangeUnitsViewModel
{
    public string CCode1 { get; set; }
    public string ZUnitsCTitle1 { get; set; }
    public string CCode2 { get; set; }
    public string ZUnitsCTitle2 { get; set; }
    public decimal NZarib { get; set; }
}

这是我目前正在使用的映射:

Mapper.CreateMap<ZChangeUnits, ChangeUnitsViewModel>()
    .ForMember(d => d.ZUnitsCTitle1,
        o => o.MapFrom(s => s.ZUnits1.CTitle))
    .ForMember(d => d.ZUnitsCTitle2,
        o => o.MapFrom(s => s.ZUnits2.CTitle));

但它似乎没有效果并且提供Missing type map configuration or unsupported mapping.例外。

您能否指导我如何使用Automapper在此课程中执行基本的CRUD操作?任何有用的链接,我都不知道如何使用它。

为了使这个真正完整,这是我的控制器!

var data = exchangeRepo.GetAll().ToList();
var d = AutoMapper.Mapper.Map<ChangeUnitsViewModel>(data);

0 个答案:

没有答案