首页 > 解决方案 > 如何从使用 EF 核心的父级获取所有子元素

问题描述

建议,有一个班级,班级有很多学生。我想让所有的学生都上课。但我无法从查询中获得任何学生。非常感谢您的帮助。

我使用 EF 核心 6

_context.class

结果是[classID:1,name:'basic',students[]]。我希望结果是[classID:1,name:'basic',students[{StudentID:1,Name:'John'}]]

标签: entity-framework

解决方案


如果你有两个类(代码类)“Class”(这个名字是否允许?)和“Student”。你的上下文有:

DbSet<Class> Classes {get; set;}
DbSet<Student> Students {get; set;}

如果在课堂上你有:

public List<Student> Students {get; set;}

在学生中:

public Class Class {get; set;}
public int ClassId {get; set;}

那么你有2个选择:

1) 与所有学生一起上课。

var targetId = 17; //Id of class that we looking for put here.
var classWithStudents = context.Classes.Include(t => t.Students).FirstOrDefault(t => t.Id == targetId);

2) 只获取该班级的学生

var targetId = 17; //Id of class that we looking for put here.
var students = context.Students.Where(t => t.ClassId == targetId).ToList();

推荐阅读