C# 包含上的EF核心停止递归

C# 包含上的EF核心停止递归,c#,entity-framework,C#,Entity Framework,我正在使用.NET Core 3和最新的实体框架Core。我目前有3个表,两个普通表和一个链接表。它们的结构如下。我正在尝试为其链接到的车辆单独获取附件,目前正在发生的是,它返回到自身并再次加载车辆对象(因为它引用了链接表)。有人知道如何阻止这种递归发生吗?我不希望VehicleAccessory中包含vehicleAccessories数组,这会导致递归 呼叫 var result = _context.Vehicles .Include(x => x.Vehic

我正在使用.NET Core 3和最新的实体框架Core。我目前有3个表,两个普通表和一个链接表。它们的结构如下。我正在尝试为其链接到的车辆单独获取附件,目前正在发生的是,它返回到自身并再次加载车辆对象(因为它引用了链接表)。有人知道如何阻止这种递归发生吗?我不希望
VehicleAccessory
中包含
vehicleAccessories
数组,这会导致递归

呼叫

var result = _context.Vehicles
            .Include(x => x.VehicleAccessories)
            .ThenInclude(x => x.Accessory)
            .Include(x => x.VehicleImages)
            .ThenInclude(x => x.Image)
            .ToList();
        return result;
通话结果

{
    "id": 1,
    "registrationNumber": "123456",
    "make": "BMW",
    "model": "M3",
    "year": 2009,
    "kilometers": 10030,
    "vehicleIdentificationNumber": "1234567890",
    "retailPrice": 100000.00,
    "costPrice": 50000.00,
    "vehicleAccessories": [
        {
            "vehicleId": 1,
            "accessoryId": 1,
            "accessory": {
                "id": 1,
                "description": "NEW ONE",
                "vehicleAccessories": []
            }
        },
        {
            "vehicleId": 1,
            "accessoryId": 2,
            "accessory": {
                "id": 2,
                "description": "NEW ONE",
                "vehicleAccessories": [
                    {
                        "vehicleId": 2,
                        "vehicle": {
                            "id": 2,
                            "registrationNumber": "123456",
                            "make": "BMW",
                            "model": "M3",
                            "year": 2009,
                            "kilometers": 10030,
                            "vehicleIdentificationNumber": "1234567890",
                            "retailPrice": 100000.00,
                            "costPrice": 50000.00,
                            "vehicleAccessories": [],
                            "vehicleImages": [],
                            "dtCreated": "2020-02-03T11:21:48.2245986",
                            "dtUpdated": "2020-02-03T11:21:48.2245554"
                        },
                        "accessoryId": 2
                    }
                ]
            }
        }
    ],
    "vehicleImages": [],
    "dtCreated": "2020-02-03T11:20:13.8890848",
    "dtUpdated": "2020-02-03T11:20:13.8890488"
}
builder.Entity<VehicleAccessory>()
            .HasKey(t => new { t.AccessoryId, t.VehicleId });
车辆表:

public class Vehicle
{

    [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; } = new List<VehicleAccessory>();
    public ICollection<VehicleImage> VehicleImages { get; set; }
    public DateTime DTCreated { get; set; }
    public DateTime DTUpdated { get; set; }
}
上下文中的关系

{
    "id": 1,
    "registrationNumber": "123456",
    "make": "BMW",
    "model": "M3",
    "year": 2009,
    "kilometers": 10030,
    "vehicleIdentificationNumber": "1234567890",
    "retailPrice": 100000.00,
    "costPrice": 50000.00,
    "vehicleAccessories": [
        {
            "vehicleId": 1,
            "accessoryId": 1,
            "accessory": {
                "id": 1,
                "description": "NEW ONE",
                "vehicleAccessories": []
            }
        },
        {
            "vehicleId": 1,
            "accessoryId": 2,
            "accessory": {
                "id": 2,
                "description": "NEW ONE",
                "vehicleAccessories": [
                    {
                        "vehicleId": 2,
                        "vehicle": {
                            "id": 2,
                            "registrationNumber": "123456",
                            "make": "BMW",
                            "model": "M3",
                            "year": 2009,
                            "kilometers": 10030,
                            "vehicleIdentificationNumber": "1234567890",
                            "retailPrice": 100000.00,
                            "costPrice": 50000.00,
                            "vehicleAccessories": [],
                            "vehicleImages": [],
                            "dtCreated": "2020-02-03T11:21:48.2245986",
                            "dtUpdated": "2020-02-03T11:21:48.2245554"
                        },
                        "accessoryId": 2
                    }
                ]
            }
        }
    ],
    "vehicleImages": [],
    "dtCreated": "2020-02-03T11:20:13.8890848",
    "dtUpdated": "2020-02-03T11:20:13.8890488"
}
builder.Entity<VehicleAccessory>()
            .HasKey(t => new { t.AccessoryId, t.VehicleId });
builder.Entity()
.HasKey(t=>new{t.AccessoryId,t.VehicleId});

您能显示查询代码吗?@Darem-添加了调用。如果您需要启用延迟加载模式,请查看此博客