簡體   English   中英

缺少具有一對多關系的子元素

[英]Missing Child Elements With One-To-Many Relationship

在我的代碼中,我得到了一個List<TableA>

表A class定義

class TableA {

        public int ID { get; set; }
        public virtual List<Child>? Children{ get; set; }

}

子表有 2 列:TableAID 和 TableBID。 PK 是引用這兩個列的復合鍵。 TableAID 是引用 dbo.TableA.ID 的 FK,而 TableBID 是引用 dbo.TableB.ID 的 FK

子 class 定義:

class Child
    {
        public int TableAID { get; set; }

        public int TableBID { get; set; }

        public virtual TableA TableA { get; set; }

    }

子表數據:

桌輔助 表BID
1 4
1 5
2 4

這是我的 model 設置代碼:

modelBuilder.Entity<Child>()
                .HasKey(c=> new { c.TableAID, c.TableBID  });


            modelBuilder.Entity<TableA>()
               .HasKey(a => a.ID);

            modelBuilder.Entity<TableA>()
                .HasMany(a => a.Children)
                .WithOne(a => a.TableA)
                .HasForeignKey(a => a.TableAID);

當我檢索TableA類型的列表時,我得到了 2 個 TableA 元素。 對於第一個元素,ID 為 1 的 TableA,Children 屬性中有 2 個元素,它們按設計工作。 但是對於第二個元素,ID 為 2 的表 A,我沒有返回任何子元素(空列表),即使存在一個 TableAID 為 2 的子元素。我不知道為什么會這樣。 有人有建議嗎?

在一起應該是這樣的

class TableA {

        public int ID { get; set; }
        public virtual List<Child> Children{ get; set; }

}

class TableB {

        public int ID { get; set; }
        public virtual List<Child> Children{ get; set; }

}

class Child
    {
        public int TableAID { get; set; }

        public int TableBID { get; set; }

        public virtual TableA TableA { get; set; }
        public virtual TableB TableB { get; set; }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM