Automapper связанные объекты - PullRequest
0 голосов
/ 29 июня 2019

У меня есть Quotation модель, содержащая свойство типа Customer.Я хочу заполнить свойство Customer с помощью automapper, когда я получаю цитату из контекста с помощью следующего кода:

var quotation = context.Quotation.Include("Customer").Single(q => q.Id == 1);
var quotationDetailsViewModel = mapper.Map<QuotationDetailsViewModel>(quotation);

В настоящее время мой quotation.Customer заполнен, но он не сопоставляется с соответствующими полями вquotationDetailsViewModel.Я знаю, что мне придется дать некоторое сопоставление, но я не понимаю, где и как это сделать.

Вот мои классы модели и модели представления:

public class Quotation
{
    public long Id {get; set;}
    public long CustomerId {get; set;}
    public Customer Customer {get; set;}
    public string Status {get; set;}
}

public class Customer
{
    public long Id {get; set;}
    public string Name {get; set;}
    public string Address {get; set;}
}

public class QuotationDetailsViewModel
{
    public long QuotationId {get; set;}
    public long CustomerId {get; set;}
    public string Status {get; set;} //This is quotation status
    public string Name {get; set;} //This is customer name
}

Вот мой автомат MappingProfile.cs

public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap<QuotationDetailsViewModel, Quotation>().ReverseMap();
        CreateMap<QuotationDetailsViewModel, Customer>().ReverseMap();
    }
}

Я использую .net MVC Core 2.2 с AutoMapper.Extensions.Microsoft.DependencyInjection версия 6.1.1

1 Ответ

0 голосов
/ 29 июня 2019

Я использую этот код для отображения реляционной сущности

public class Comment
{
    public int Id { get; set; }
    public Guid UniqeId { get; set; }
    public string Content { get; set; }
    public virtual Post Post { get; set; } // relational entity
    public CommentStatus CommentStatus { get; set; }
}


public class CommentDto
{
    public int Id { get; set; }
    public Guid UniqeId { get; set; }
    public string Content { get; set; }
    public Post Post { get; set; }
    public CommentStatus CommentStatus { get; set; }
    public DateTime DateCreated { get; set; }
}

Затем в моем профиле

public class CommentProfile : Profile
{
    public CommentProfile()
    {
        CreateMap<Comment, CommentDto>(MemberList.None).ReverseMap();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...