外键和实体关系

时间:2015-04-30 13:13:00

标签: asp.net entity-framework-6

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

当我运行以下

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

enter image description here

你可以看到它返回了给定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();
            }

enter image description here

我有点迷失为什么第二个只有当它明显与9有关系时才会返回4行。这是我构建查询的方式吗?

1 个答案:

答案 0 :(得分:0)

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