У меня есть два объекта с одним или несколькими отношениями вроде этого:
Клиент 1 ...... * Бронирование
public class Customer
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public List<Booking> Bookings { get; set; }
}
public class Booking
{
[Key]
public int Id { get; set; }
public string Title{ get; set; }
public DateTime BookingDate { get; set; }
public int? CustomerId { get; set; }
public Customer Customer { get; set; };
}
Если _context является DbContext, следующие два запроса оказались в циклической зависимости.
_context.Customers.Include(x=> x.Bookings).ToList();
ИЛИ
_context.Bookings.Include(x=> x.Customer).ToList();
Вопрос в том, как мы можем запросить эти взаимозависимые отношения, если мы должны включить объект A в запрос B и наоборот?
Одно из возможных решений вышеупомянутой проблемы в моем случае, когда я использовал Asp.Net Core, заключалось в том, чтобы указать в вариантах MVC обрабатывать циклы ссылок следующим образом:
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});
Я поднял вопрос с основной командой EF, чтобы ответить, если обратный цикл должен обрабатываться на стороне потребителя или он должен обрабатываться EF Core. Обновите ответ, как только получите ответ.