微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF Core 导航属性和映射配置文件

如何解决EF Core 导航属性和映射配置文件

我正在尝试将映射应用于导航属性,但出现错误我有两个包含导航属性一对多的类。

public class Contractor : Entity<string>
{
      public virtual Collection<DocsVat> DocsVats { get; set; }
}


public class DocsVat : Entity<Guid>
{
   public  Contractor Contractor { get; set; }
}

配置为:

public class DocsVatEntityConfiguration : EntityTypeConfigurationBase<DocsVat>
{
protected override void ConfigureEntity()
{
        Builder.ToTable("DocsVat","VAT");
        Builder.HasKey(p => p.Id);
        Builder.HasOne(p => p.Contractor).WithMany(p=>p.DocsVats).HasForeignKey(p => 
        p.ContractorNo).Isrequired();
        Builder.Property(p => p.Id).HasColumnName("Id").Isrequired();
}
}

和映射配置文件

 public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap<Entities.DocsVat,DocsVatDto>();
        CreateMap<DocsVatDto,Entities.DocsVat>();
        CreateMap<FnPurchaseDetail,DocsVatDto>();

        CreateMap<Entities.DocsVat,DocsVatDto>().ForMember(dto => dto.Contractor,conf => 
        conf.MapFrom(ent => ent.Contractor.Id));
    }
}

我遇到的错误

Error mapping types.

Mapping types:
DocsVatDto -> DocsVat
###.applicationservices.Doc.DocsVAT.Dto.DocsVatDto -> ###.Entities.DocsVat

Type Map configuration:
DocsVatDto -> DocsVat
###.applicationservices.Doc.DocsVAT.Dto.DocsVatDto -> ###.Entities.DocsVat

Destination Member:
Contractor

我该如何解决

解决方法

错误似乎与 Automapper 配置有关,而不是实体框架。您需要发布更详细的错误消息,但显然 Automapper 正在尝试映射 Contractor 的属性 DocsVat,但找不到它的映射配置。

要么在配置 DocsVatDto => DocsVat 的映射时忽略该属性,要么创建用于转换 ContractorDto => Contractor 的映射

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。