首页 > 解决方案 > 如何忽略导航属性(不使用 Fluent API)

问题描述

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

表格布局: 表格布局

我的课程如下。当我使用我的联系人获取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
        }
    }
 ]

标签: entity-frameworkentity-framework-core

解决方案


推荐阅读