EntityFrameworkCore отношение «один ко многим» - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть следующие модели 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

Я знаю, что упускаю что-то глупо простое, но я не могу вспомнить, что это такое.

...