簡體   English   中英

EF Core 為多對多返回 null

[英]EF Core returning null for many to many

所以我的用例非常簡單,我有車輛和車輛配件。 現在我創建了 3 個表,一個用於車輛,一個用於附件,還有一個多對多表,如下所示:

車輛表

{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id { get; set; }
    public string RegistrationNumber { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
    public int Year { get; set; }
    public int Kilometers { get; set; }
    public string VehicleIdentificationNumber { get; set; }
    public decimal RetailPrice { get; set; }
    public decimal CostPrice { get; set; }
    public ICollection<VehicleAccessory> VehicleAccessories { get; set; }
    public ICollection<VehicleImage> VehicleImages { get; set; }
    public DateTime DTCreated { get; set; }
    public DateTime DTUpdated { get; set; }
}

配件表

public class Accessory
{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id { get; set; }
    public string Description { get; set; }
    public ICollection<VehicleAccessory> VehicleAccessories { get; set; }
}

鏈接表

public class VehicleAccessory
{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id { get; set; }
    public long VehicleId { get; set; }
    public Vehicle Vehicle { get; set; }
    public long AccessoryId { get; set; }
    public Accessory Accessory { get; set; }
}

現在我手動向數據庫添加了一個條目以鏈接附件和車輛表,但是如果我查詢車輛表以獲取 VehicleAccessories 屬性,它不會被識別,它只返回空值。 我試圖在屬性上使用 include ,但它給了我一個循環引用錯誤。 附帶說明一下,我不知道如何使用 EF 添加到多對多表中。

嘗試獲取我正在使用的記錄: _context.Vehicles.ToList();

有人可以解釋為什么這不起作用。

1)您是否在 SQL Server 中創建了這些表之間的關系?

2) 您是否在 nuget 包控制台中使用了 scaffold-dbcontext 命令? 您的 VehicleAccessory 表看起來像您沒有使用 scaffold-dbcontext 命令。

3)使用下面的代碼

_context.Vehicles.Include(x => x.VehicleAccessories).Include("VehicleAccessories.Accessory").ToList();

暫無
暫無

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

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