JsonError
Работая над моим приложением для управления тренажерным залом, я столкнулся с отображением сбора данных, связанных с моделью клиента.
Проблема связана со следующими моделями:
public class Client
{
[Key]
public int Id { get; set; }
public int CardId { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public string PersonalInfo => "ID: " + CardId + ": " + Name + " " + Surname;
public int? GymEntries { get; set; }
public int? MartialArtsEntries { get; set; }
public int? GymEntriesLeft { get; set; }
public int? MartialArtsEntriesLeft { get; set; }
public DateTime? ClientJoined { get; set; }
public DateTime? SubscriptionExpires { get; set; }
public int? SubscriptionId { get; set; }
public virtual Subscription Subscription { get; set; }
public bool? IsDeleted { get; set; }
public virtual ICollection<Payment> Payments { get; set; }
}
public class Payment
{
[Key]
public int Id { get; set; }
public int ClientId { get; set; }
public virtual Client Client { get; set; }
public int? SubscriptionId { get; set; }
public virtual Subscription Subscription { get; set; }
public int CashRegistered { get; set; }
public string AdditionalInformation { get; set; }
public DateTime? PaymentRegistered { get; set; }
public DateTime? SubscriptionExpires { get; set; }
}
Все работает нормально, пока я не хочу, чтобы мой клиентский контроллер при получении запроса get / id возвращал все данные клиента, включая все связанные платежиИдентификатор клиента из Платежа.Результат Json в Postman не возвращает правильный формат, он пропускает список платежей.
Именно так я пытаюсь сделать это в моем контроллере
[HttpGet("{id}")]
public async Task<ActionResult<Client>> GetClient(int id)
{
var client = await _context.Client.FindAsync(id);
var subscription = await _context.Subscription.FindAsync(client.SubscriptionId);
var payments = await _context.Payment.Where(p => p.Client == client).ToListAsync();
client.Subscription = subscription;
client.Payments = payments;
if (client == null)
{
return NotFound();
}
if (client.IsDeleted == true)
{
return NotFound();
}
return client;
}