Я получаю таблицу ProductTransfer вместе со связанными продуктами. Хотя общее количество записей = 1200, мой API возвращает только три записи.
Вот мои модели
Я получаю таблицу ProductTransfer вместе со связанными продуктами. Хотя общее количество записей = 1200, мой API возвращает только три записи. Вот мои модели [code]public class ProductTransferDto { public int Id { get; set; } public int BusinessId { get; set; } public ProductTransferType ProductTransferType { get; set; } public ProductTransferStatus ProductTransferStatus { get; set; } public ProductTransferAprroved ProductTransferAprroved { get; set; } public List Products { get; set; } = []; public string? RegisterBy { get; set; } = null; public string? BranchName { get; set; } = null; public int? BranchId { get; set; } public DateTime TransferedOn { get; set; } public decimal? StockValue { get; set; } = 0; public int? ItemCount { get; set; } = 0; public DateTime ApprovedOn { get; set; } public string? ReceivedById { get; set; } = null; public DateTime ReceivedOn { get; set; } public string? Note { get; set; } = null; }
public class ProductTransferDetailDto { public int Id { get; set; } public int ProductTransferId { get; set; } public int? ProductId { get; set; } = null; public string? Name { get; set; } = null; public string? Code { get; set; } = null; public decimal SellingPrice { get; set; } = 0; public decimal BuyingPrice { get; set; } = 0; public decimal WholeSalePrice { get; set; } = 0; public decimal Quantity { get; set; } = 0; public string? ProfitMargin { get; set; } = null; }
[/code] Вот мой метод получения данных из базы данных MySQL с помощью Dapper. [code]public async Task > GetProductTransersByAdmin(SearchParameters searchParameters, int ProductTransferType) { try { using var connection = _dapperContext.CreateConnection();
var SqlTotal = @" SELECT COUNT(*) FROM ProductTransfers PT WHERE PT.ProductTransferType = @ProductTransferType AND PT.TransferedOn BETWEEN @StartDate AND @EndDate AND (@BranchId IS NULL OR PT.BranchId = @BranchId); ";
FROM producttransfers PT LEFT JOIN branches B ON B.Id = PT.BranchId LEFT JOIN registration R ON R.Id = PT.RegisterId LEFT JOIN producttransferdetails PTP ON PTP.ProductTransferId = PT.Id WHERE PT.ProductTransferType = @ProductTransferType AND PT.TransferedOn BETWEEN @StartDate AND @EndDate AND (@BranchId IS NULL OR PT.BranchId = @BranchId) ORDER BY PT.Id DESC LIMIT @Take OFFSET @Skip; ";
// 1) Read count var total = await connection.ExecuteScalarAsync(SqlTotal, parameters);
// 2) Read full result set with children (multi-mapping) var lookup = new Dictionary();
var transfers = await connection.QueryAsync(SqlList, (pt, ptp) => { if (!lookup.TryGetValue(pt.Id, out var entry)) { entry = pt;