外键和实体关系
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
值的列表。
我正在编写一个简单的程序来跟踪高尔夫记录,但我看到一些关于实体关系的奇怪结果。
我的 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
值的列表。