如何忽略导航属性(不使用Fluent API)

时间:2019-04-09 20:48:27

标签: entity-framework entity-framework-core

对于下面的示例,如何在不使用onModelCreating中的FluentAPI的情况下忽略导航属性:

Table Layout

我的课程在下面。当我使用联系人获取PmActionDetail的结果时,WorkTask表包含AssetTypeWorkTask结果,这不是期望的结果。

public partial class PmActionDetail
{
    public int PmActionDetlId { get; set; }
    public int? AssetTypeWorkTaskId { get; set; }
    public virtual AssetTypeWorkTask AssetTypeWorkTask { get; set; }

}


public partial class AssetTypeWorkTask
{
    public AssetTypeWorkTask()
    {
        AssetPmTypeWorkTask = new HashSet<AssetPmTypeWorkTask>();
    }

    public int Id { get; set; }
    public int? AssetTypeId { get; set; }
    public int WorkTaskId { get; set; }

    public virtual AssetType AssetType { get; set; }
    public virtual AssetWorkTask WorkTask { get; set; }
    public virtual ICollection<AssetPmTypeWorkTask> AssetPmTypeWorkTask { get; set; }
    public virtual ICollection<PmActionDetail> PmActionDetail { get; set; }

}


public partial class AssetType
{
    public AssetType()
    {
        AssetTypeWorkTask = new HashSet<AssetTypeWorkTask>();
    }

    public int AssetTypeId { get; set; }
    public string AssetTypeDescription { get; set; }
    public virtual ICollection<AssetTypeWorkTask> AssetTypeWorkTask { get; set; }

}


public partial class AssetWorkTask
{


    public int Id { get; set; }
    public string Desc { get; set; }
    public virtual ICollection<AssetTypeWorkTask> AssetTypeWorkTask { get; set; }
}

这是我正在运行的上下文查询:

      return await _context.PmActionDetail.Include("AssetTypeWorkTask").Include("AssetTypeWorkTask.WorkTask")
            .Include("AssetTypeWorkTask.AssetType").ToListAsync();

这些是结果。我不想在“ workTask”下显示assetTypeWorkTask的关系。我理解为什么它可能显示它,因为它是关系的一部分。但是,这不是我需要的结果。

[
{
    "pmActionDetlId": 6008,
    "pmActionHeadId": 1517,
    "assetTypeWorkTaskId": 29,
    "assetTypeWorkTask": {
        "id": 29,
        "assetTypeId": 31,
        "workTaskId": 8,
        "assetType": {
            "assetTypeId": 31,
            "assetTypeCategory": "ROOM",
            "assetTypeWorkTask": []
        },
        "workTask": {
            "id": 8,
            "desc": "PM",
            "active": 1,
            "assetTypeWorkTask": [
                {
                    "id": 20,
                    "assetTypeId": 20,
                    "workTaskId": 8,
                    "assetType": {
                        "assetTypeId": 20,
                        "assetTypeCategory": "CASEGOODS",
                    }
                },
                {
                    "id": 21,
                    "assetTypeId": 21,
                    "workTaskId": 8,
                    "assetType": {
                        "assetTypeId": 21,
                        "assetTypeCategory": "APPLIANCES",
                    },
                }
            ]
        },
        "assetPmTypeWorkTask": [],
        "pmActionDetail": null
    }
}
]

0 个答案:

没有答案