在查詢中包含父級和子級?

asp.net-core c# entity-framework-core

我有兩個具有一對多關係的實體,如下所示:

客戶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();

問題是如果我們必須在B的查詢中包含實體A,反之亦然,我們如何查詢這些相互依賴的關係?

熱門答案

在我使用Asp.Net Core的情況下,上述問題的一個可能解決方案是告訴MVC選項處理引用循環,如下所示:

 services.AddMvc()
                .AddJsonOptions(options =>
                {
                    options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                });

我提出了一個問題 ,EF核心團隊要回答是否應該在消費者端處理參考循環,或者應該由EF Core處理。一旦得到回复,將更新答案。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因