У меня есть класс Movie
public class Movie
{
public int Id { get; set; }
public string Name { get; set; }
public Producer ProducerName { get; set; }
}
и класс Producer
public class Producer
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Movie> Movies { get; set; }
}
Они имеют отношение один ко многим от продюсера к фильму, т. Е. У продюсера может быть несколько фильмов иу фильма есть только один продюсер.
Я получаю детали фильма с помощью запроса ниже.
var result = _context.Movies
.Include(m => m.ProducerName)
.ToList();
Я получаю ниже Json:
{
"id": 1,
"name": "Venom",
"producerName": {
"id": 2,
"name": "Amy Pascal",
"movies": [
{
"id": 1,
"name": "Venom"
}
]
}
}
Я хочу все фильмысвязан с производителем в том же запросе?
Как
{
"id": 1,
"name": "Venom",
"producerName": {
"id": 2,
"name": "Amy Pascal",
"movies": [
{
"id": 1,
"name": "Venom"
},
{
"id": 56,
"name": "something"
},
{
"id": 81,
"name": "else"
}
]
}
}
Как я могу это сделать?
РЕДАКТИРОВАТЬ: Используя запрос в одном из ответов, я толькополучить один фильм продюсера (текущий) и не все.Я просматриваю базу данных и нахожу, что, хотя между производителем и фильмом есть отношение один ко многим, для одного и того же производителя вставлено несколько строк (с разными первичными ключами).Мой вопрос немного отличается здесь.Я заполняю базу данных с помощью json.Идентификаторы (PK) генерируются базой данных.
JSON используется для заполнения базы данных:
[
{
"Name": "Venom",
"ProducerName":
{
"Name": "Steven Spielberg"
}
},
{
"Name": "Kung Fu League",
"ProducerName":
{
"Name": "Steven Spielberg"
}
}
]
Как я могу ограничить EF Core, чтобы он не создавал дублирующиеся строки для одного и того же производителя и не генерировал другой ключ для того же производителя, что и тогдаМогу ли я получить все фильмы одного продюсера успешно?