Я пытаюсь позвонить своей конечной точке, которая должна вернуть сгруппированный результат, основанный на получении заказов, сгруппированных по почтовому индексу, отфильтрованному в порядке убывания по итогу.Итого - это количество заказов для каждого из почтовых индексов.
Структура базы данных: Клиенты, Заказы, Серверы, и существует связь один-ко-многим между клиентом и заказами, например, один клиент может иметь много заказов.
Мой текущий код возвращает ошибку:
System.NullReferenceException : 'Ссылка на объект не установлена на экземпляр объекта.'
Вот мой код c #:
/// <summary>
/// Get all orders grouped by postcode.
/// </summary>
/// <returns>The orders.</returns>
[HttpGet("ByPostcode")]
public IActionResult ByPostcode()
{
//Filter orders.
var orders = _context.Orders.Include(order => order.Customer).ToList();
//Group by postcode.
//Descending list of postcodes and total number of orders for each of those postcodes.
var groupedResult = orders.GroupBy(order => order.Customer.PostCode)
.ToList()
.Select(group => new
{
PostCode = group.Key,
Total = group.Sum(x => x.Total)
}).OrderByDescending(result => result.Total)
.ToList();
return Ok(groupedResult);
}
Ожидаемым результатом должен быть список заказов, сгруппированных по почтовому индексу с общей суммой заказов по почтовому индексу, например:
[
{
"postcode": "A",
"total": 10
},
{
"postcode": "AWE",
"total": 23423
},
{
"postcode": "TRR",
"total": 453
},
]
Фактический результат: System.NullReferenceException: 'Ссылка на объект не установлена для экземпляра объекта.' .
MyProject.Models.Order.Customer.get вернула ноль.