创建一对多的关系

时间:2016-10-31 15:31:33

标签: c# entity-framework linq

我正在尝试在下表之间创建一个(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中,我正在为与ProjectTableId匹配的所有条目执行linq选择,并将其放入每个Project实例的列表中。

我担心这种方法效率非常低,因为它会在数据库中查询每个项目的条目。我知道在这种情况下急切(?)加载最好,但我不知道如何实现它。

表格看起来像这样:(结构方面) enter image description here * 再次实际的表格必然是复杂的,所以为了简单起见,我删除了不必要的道具。

1 个答案:

答案 0 :(得分:0)

传统上,您的许多相关项目都会ICollection

public class Project
{
    ...

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

然后,您可以在查询项目时包含日志:

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