EF Core仅包含实体的子属性

时间:2018-09-17 19:45:51

标签: asp.net entity-framework .net-core ef-code-first ef-core-2.1

我需要将一个关系实体映射到一个端点,但是我真的很努力。

您会看到,下面的json对象是我当前在代码中获得的对象,它具有所需的信息,但是它非常复杂,我只需要一个Cursos数组这是CursoUnidade对象的属性。

"cursos": [
{
  "cuuCurId": 1,
  "curso": {
    "curId": 1,
    "curDescricao": "Analise e Desenvolvimento de Sistemas",
    "curStatus": "A",
    "curCodExterno": "",
    "curObservacao": ""
  },
  "cuuUniId": 1,
  "cuuStatus": "A"
},
{
  "cuuCurId": 2,
  "curso": {
    "curId": 2,
    "curDescricao": "Engenharia Elétrica",
    "curStatus": "A",
    "curCodExterno": "",
    "curObservacao": ""
  },
  "cuuUniId": 1,
  "cuuStatus": "A"
}
]

我需要的是这样的

"cursos": [
{
    "curId": 1,
    "curDescricao": "Analise e Desenvolvimento de Sistemas",
    "curStatus": "A",
    "curCodExterno": "",
    "curObservacao": ""
},
{
    "curId": 2,
    "curDescricao": "Engenharia Elétrica",
    "curStatus": "A",
    "curCodExterno": "",
    "curObservacao": ""
}
]

这是负责当前获取的对象的代码段。

public IEnumerable<Unidade> GetCursosByUnidade()
{
    return _contexto.Unidade
                    .Include(c => c.cursos)
                    .ThenInclude(c => c.Curso)
                    .ToList();
}

我想知道是否可以直接映射Cursos属性而不是将其映射到实体的子属性吗?

我也尝试过这样做:

public IEnumerable<Unidade> GetCursosByUnidade()
{
    return _contexto.Unidade
                    .Include(c => c.cursos.Curso)
                    // .ThenInclude(c => c.Curso)
                    .ToList();
}

但是此代码引发以下错误:

  

Services / DataManager / UnidadeService.cs(107,40):错误CS1061:““ ICollection”不包含“ Curso”的定义,并且无法找到接受第一个参数的扩展方法“ Curso”类型为“ ICollection”(程序集中是否缺少使用指令或引用?)[/ Users / jed / Projects / Core / SVNSchool / School.csproj]

0 个答案:

没有答案