Не выводить в запросе данные из связанной таблицы в цикле EF

Есть две связанных сущности Dealer и Order со связью один ко многим:

public class Dealer
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [JsonPropertyName("id")]
    public int DealerId { get; set; }

    [JsonPropertyName("firstName")]
    public string FirstName { get; set; }

    [JsonPropertyName("lastName")]
    public string LastName { get; set; }

    [JsonPropertyName("telephone")]
    public long? Telephone { get; set; }

    [JsonPropertyName("debts")]
    public float Debts { get; set; }

    [JsonPropertyName("city")]
    public string City { get; set; }

    public virtual ICollection<Order>? Orders { get; set; }
}

public class Order
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [JsonPropertyName("id")]
    public int Id { get; set; }

    [JsonPropertyName("dealerId")]
    public int DealerId { get; set; }
    public virtual Dealer Dealer { get; set; }

    [JsonPropertyName("dateOrder")]
    public DateTime DateOrder { get; set; }

    [JsonPropertyName("operatorId")]
    public int OperatorId { get; set; } = 1;

    [JsonPropertyName("sum")]
    public float Sum { get; set; }

    [JsonPropertyName("status")]
    public string Status { get; set; }
}

После запроса данных из таблицы Orders мне автоматически подтягивает данные из второй таблицы Dealers через внешний ключ. Но так же поскольку у сущности Dealer есть свойство

public virtual ICollection<Order>? Orders { get; set; }

EF или JSON(честно говоря я не знаю кто из них) пытается еще раз подтянуть список Order из первой таблицы. И так по кругу.

я установил ограничение на зацикливание через

builder.Services.AddControllers().AddNewtonsoftJson(options =>
    options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

Если для Get-запроса Dealer это сработало, то с заказы мне выдает вот так:

Ответ swagger на GetAll

То есть подтягивая первый Order, подтягивает его Dealer,а у него еще раз успевает запросить Order. Как это исправить? А еще лучше как вместо свойства DealerId в сущности Order вывести вывести LastName и FirstName от Dealer?

Сам запрос к БД с сортировкой:

var sortDealers = sort == "asc" ?
    _context.Orders
            .Select(x => x)
            .Include(x => x.Dealer)
            .OrderBy(x => EF.Property<object>(x, property)) :
    sort == "desc" ?
    _context.Orders
            .Select(x => x)
            .Include(x => x.Dealer)
            .OrderByDescending(x => EF.Property<object>(x, property)) :
    _context.Orders
            .Include(x => x.Dealer)
            .Select(x => x);

Ответы (1 шт):

Автор решения: Yury Kuzmin

В общем отвечать никто не хочет, пришлось самому решить =)

 var sortDealers =
          sort == "asc" ?
          _context.Orders
          .Include(x => x.Dealer)
          .Select(x => new OrderG
          {
              Id = x.Id,
              DateOrder = x.DateOrder,
              OperatorId = x.OperatorId,
              Sum = x.Sum,
              Status = x.Status,
              DealerFullName = x.Dealer.FirstName + " " + x.Dealer.LastName,
          })
         .AsQueryable()
         .OrderBy(x => EF.Property<object>(x, property)):

Здесь только кусок кода, остальной код условия опустил.

Запрашиваю нужные поля и ручками маплю их в DTO сущность. Да, я видел такие способы решения, но у меня почему то сначала они не сработали.

→ Ссылка