以下是表格:
我需要检索一组Student对象,这样我就可以访问它们的名字,姓氏等。
我有点被困,所以任何帮助都非常受欢迎,我总是试图学习和应用新东西来使它们坚持下去。 :)
到目前为止,我已经尝试过了:
private void cmbGradeParalelo_SelectedIndexChanged(object sender, EventArgs e)
{
int gradeParaleloId = Convert.ToInt32(cmbGradeParalelo.SelectedValue);
using (StudentRepository studentRepo = new StudentRepository())
{
studentRepo.FindAllStudents().Where(s => s.GradeStudents
}
}
.GradeStudents
是EntityCollection<GradeStudent>
所以我认为我可以使用Linq查询数据,但我不知道如何。我从来没有做过这样的事情。 :)
感谢您的时间!
答案 0 :(得分:1)
是的,您可以使用Linq进行查询。但是,有一个初学者需要注意:包含:
Context.Students
.Include("GradeStudents")
.Include("GradeStudents.GradeParalelo")
.First<Student>(s => s.StudentId == 1)
.GradeStudents
等
如果您提供更多关于您要做什么的信息,我可能会提供更多帮助。
另请注意,如果您的联接表(GradeStudents)没有额外的列,那么它将是一个Assocation,您可以直接从Student访问GradeParalelo。
答案 1 :(得分:1)
您可能会发现其中一个教程很有用,具体取决于您使用的是MVC还是Web窗体
MVC / Code First http://www.asp.net/entity-framework/tutorials/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application
Web Forms / Database First http://www.asp.net/entity-framework/tutorials/the-entity-framework-and-aspnet- - 得到启动的部分-4
答案 2 :(得分:0)
如果你试图让所有学生至少有一个等级Paralelo,那么这将是有效的
studentRepo.FindAllStudents()
.Where(s => s.GradeStudents.Any(gs => gs.GradeParaleloId == gradeParaleloId));