Создание отношения один ко многим

Я пытаюсь создать отношение один ( Project) ко многим (ActionLog) между следующими таблицами:

public class Projects {
    [Key]
    public int Id { get; set; }
    public string Name { get; set; } //I cut out most of the props as they were not relevant
   }

//They exist in two different .cs files. 

public class ActionLog {
     [Key]
     public int Id { get; set;}
     public string Information {get; set;}
     public ProjectsId {get; set;}
   }

В настоящее время, в моей viewmodel, я делаю выбор linq для всех записей, которые соответствуют моему ProjectTableIdи помещаю его в Список для каждого экземпляра Project.

Я боюсь, что этот подход крайне неэффективен, так как он запрашивает базу данных для каждой отдельной записи проектов. Я знаю нетерпеливый (?) загрузка была бы лучшей в этом случае, но я не знаю, как это реализовать.

Таблицы могут выглядеть следующим образом: (по структуре)
Введите описание изображения здесь
* Опять же, фактические таблицы обязательно сложны, поэтому я вырезал ненужный реквизит для простоты.

1 ответ

  1. Традиционно, у вас будет ICollectionмного связанных элементов:

    public class Project
    {
        ...
    
        public virtual ICollection<ActivityLog> ActivityLogs { get; set; }
    }
    

    Таким образом, можно включить журналы при запросе проектов:

    var projects = db.Projects.Include(m => m.ActivityLogs)