У меня есть следующие модели EF:
public class Person
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public bool Authorised { get; set; }
public bool Enabled { get; set; }
public bool Valid { get; set; }
public ICollection<FavouriteColour> FavouriteColours { get; set; }
}
public class FavouriteColour
{
[Key]
public int Id { get; set; }
public int AvailableColourId { get; set; }
public int PersonId { get; set; }
}
public class AvailableColour
{
[Key]
public int Id { get; set; }
public string Colour { get; set; }
public string ColourHash { get; set; }
public virtual ICollection<FavouriteColour> UsedBy{ get; set; }
}
Я пытаюсь достичь чего-то простого, когда у человека может быть список любимых цветов, связанный с таблицей доступных цветов и Доступные цвета могут иметь список людей, у которых он является любимым.
В конечном итоге я хочу отобразить список людей с их любимыми цветами и список доступных цветов, показывающий, сколько времени было использовано.
Я могу сделать это достаточно легко в C# с помощью циклов linq и forEach, но я уверен, что есть способ настроить это, чтобы EF мог получить эту информацию с помощью простого вызова, такого как: myDbContext.people.ToList()
чтобы вернуть информацию, такую как
{
id: 1,
name: "bob",
enabled: true,
valid: true,
authorised: true,
favouriteColours: [
{
id: 2,
colour: "green",
colourHash: "0F0"
},
{
id: 3,
colour: "blue",
colourHash: "00F"
}
]
...
}
и `myDbContext.AvailableColours.ToList () ', чтобы вернуть информацию, такую как
{
id: 2,
colour: "green",
usedBy: [{ ... [list of Persons that have used this colour as a favourite] }]
}
Я использую Do tNet Core 3.1 и EntityFrameWorkCore 3.1.3
Я знаю, что упускаю что-то глупо простое, но я не могу вспомнить, что это такое.