EF Core включает только подчиненное свойство от объекта - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужно отобразить реляционную сущность на конечную точку, однако я действительно борюсь с ней.

Видите ли, следующий объект 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" (может быть, отсутствует директива use или ссылка в сборке?) [/ Users / jed / Projects/Core/SVNSchool/School.csproj]

...