簡體   English   中英

EF Core 3 - 一對多關系未填充

[英]EF Core 3 - One-To-Many Relationship is not populating

我有 2 個模型 - 用戶和訂單。 一個用戶有很多訂單,一個訂單有一個用戶。

public class User
{
    [Key]
    public int Id { get; set; }

    ...

    public List<Order> Orders { get; set; } = new List<Order>();
}
public class Order
{
    [Key]
    public int Id { get; set; }

    public int UserId { get; set; }
    public User User { get; set; }

    ...
}

我的數據庫提供商是 MySQL,所以我使用的是 Pomelo.EntityFrameworkCore.MySql。

問題是 Orders 屬性始終為空(或沒有屬性初始化程序的 null)。 我嘗試過使用 ForeignKey 和 InversionProperty,但它沒有幫助。

任何幫助表示贊賞。

為了填充 Order.User 和 User.Orders,您需要調用.Include()。 例如:

this.databaseContext.Orders.Include(order => order.User).Where(...);
this.databaseContext.Users.Include(user => user.Orders).Where(...);

資料來源: https://docs.microsoft.com/en-us/ef/core/querying/related-data

編輯:看到問題下的評論,我認為您在設置兩個類之間的關系時遇到問題。 在您的上下文中,您應該設置關系。 這是一個例子:

protected override void OnModelCreating(ModelBuilder modelBuilder) {
    modelBuilder.Entity<Order>()
        .HasOne(_ => _.User)
        .WithMany(_ => _.Orders)
        .HasForeignKey(_ => _.UserId);
}

來源: https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key

暫無
暫無

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

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