クエリに親と子を含める?

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

質問

私はこのように1対多数の関係を持つ2つのエンティティを持っています:

顧客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の場合、2つのクエリの後に循環依存関係が終了しました。

_context.Customers.Include(x=> x.Bookings).ToList();

または

_context.Bookings.Include(x=> x.Customer).ToList();

Bの問合せにエンティティAを含める必要がある場合、これらの相互依存関係をどのように問い合せることができますか?

人気のある回答

私の場合、Asp.Net Coreを使用していた私の場合、上記の問題に対する可能な解決策の1つは、参照ループを処理するMVCオプションを次のように伝えることでした。

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

私は、参照ループを消費者側で処理する必要がある場合、またはEFコアで処理する必要がある場合は、EFコアチームに問題を提起しました。応答を取得すると、回答を更新します。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ