外键和实体关系

Foreign keys and entity relationships

我正在编写一个简单的程序来跟踪高尔夫记录,但我看到一些关于实体关系的奇怪结果。 我的 table Hole 在它的 CourseId 列和 Course tables Id 列上有一个外键关系。

当我运行以下

using (var context = new DataAccess.Entities())
            {
                var courseId = 0;
                var holesInCourse = context.Holes.Where(x => x.CourseId == courseId);
                var holeList = holesInCourse.ToList();
            }

您可以看到它返回了给定课程 0 的 9 个洞的列表

然而,当我将查询更改为以下内容时:

using (var context = new DataAccess.Entities())
            {
                var courseId = 0;
                var holesInCourse = context.Courses.FirstOrDefault(x => x.Id == courseId);
                var holeList = holesInCourse.Holes.ToList();
            }

我有点迷惑为什么第二个只有 returns 4 行,而它显然与 9 行有关。这是我构建查询的方式吗?

在这段代码中, var holesInCourse = context.Courses.FirstOrDefault(x => x.Id == courseId); 您正在分配 courseId=0; 这就是为什么你没有得到正确的 answer.here linq 将尝试从数据库中获取具有 courseId=0 值的列表。