Данные передаются из модели хранимых процедур в репозитории в службу, где они сопоставляются с dto для возврата в интерфейс.
Это модель:
Код: Выделить всё
[NotMapped]
public class CashOrder
{
public Guid Id { get; set; }
public DateTime? DateCreated { get; set; }
public DateTime? DateFinalised { get; set; }
public string? ReferenceNumber { get; set; }
public int DenominationOptionId { get; set; }
public decimal? FaceValue { get; set; }
public int? NumberOrdered { get; set; }
}
Код: Выделить всё
class CashOrderDto
{
public DateTime? DateCreated { get; set; }
public DateTime? DateFinalised { get; set; }
public string? ReferenceNumber { get; set; }
public IEnumerable DenominationDetails { get; set; } = Enumerable.Empty();
}
Проблема, с которой я столкнулся, заключается в том, что я получить мои данные из хранимой процедуры, которая объединяет таблицы для получения списка заказов и их номиналов.
данные содержат несколько заказов, в которых DateCreated, DateFinalized и ReferenceNumber одинаковы, Детали номинала — это то, что отличается от строки к строке (поскольку в одном заказе может быть много номиналов).
Как я могу сделать что-то подобное с помощью automapper? Возможно ли это вообще?
Код: Выделить всё
return model
.GroupBy(cashOrder => cashOrder.Id)
.Select(cashOrderGroup => new CashOrderClearanceDto
{
DateCreated = cashOrderGroup.First().DateCreated,
DateFinalised = cashOrderGroup.First().DateFinalised,
ReferenceNumber = cashOrderGroup.First().ReferenceNumber,
DenominationDetails = cashOrderGroup.Select(cashOrder => new DenominationDetailsDto
{
DenominationOptionId = cashOrder.DenominationOptionId,
FaceValue = cashOrder.FaceValue,
NumberHeld = cashOrder.NumberOrdered
}).ToList()
}).ToList(); // or FirstOrDefault for getting one specific item.
Будем очень благодарны за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/790 ... linq-query
Мобильная версия