0
我有三个表的外键遵循LINQ表由另一个表
- 课程(ID,姓名,DESC)
- 学生(ID,姓名,courceId)
- 用户(ID,名,courseId)
我需要得到其当前用户分配到课程的学生。
我的问题是如何获得这对于一台 外键我做了以下,但该代码示例访问数据库twice.Is有什么办法可以让一个访问表中的记录。
var userId = User.Identity.GetUserId();
var courseId = _context.Users
.Where(u => u.Id == userId)
.Select(u => u.CourseId)
.Single();
var students = _context.Students
.Where(s => s.CourseId == courseId)
.ToList();
这样,代码首先,模型第一或数据库第一?如果你正确地设置了User和Student,你可以调用'_context.Users.Include(“Student”)来延迟加载Student关系(无论是两三个,还是一个查询,都取决于实体框架**,没有什么我们可以做的..但它往往是有效的无论如何) –
请在发布问题之前至少做一些**最小化**研究。输入您的标题[在谷歌](https://www.google.com/#q=LINQ+to+table+by+foreign+key+in+another+table)并检查第一个结果。 – Sefe
[在LINQ中用C#使用外键导航属性来查询表格的可能的副本](http://stackoverflow.com/questions/6764013/query-a-table-by-using-foreign-key-navigation-properties- in-linq-with-c-sharp) – Sefe