如何在 LINQ 中使用外键列检索单个记录?
How to retrieve a single record using a foreign key column in LINQ?
我有列表“StudentList”(有不止一条记录)
我有另一个列表“CourseList”(包含多个记录)
StudentList (1) 到 (*) CourseList [Relationship]
我想检索 courseID(CourseList 中的列)= 1000 的记录;
我试过但无法执行的。
var viewmodel = StudentList.Select(x => x.CourseList.Where(y => y.courseID == "1000"));
提前致谢!
你可以试试这个方法
var result = students.Where(x=>isExistCourse(x));
public static bool isExistCourse(Student student)
{
foreach(var item in student.Courses)
{
if(item.Id==1000)
return true;
}
return false;
}
如果只想获取一条记录,可以将where
换成FirstOrDefault
这是您要找的答案,
var viewmodel = StudentList.SelectMany(x => x.CourseList.Where(y => y.courseID == "1000")).FirstOrDefault();
既然你对它的工作原理和select许多人的作用表现出兴趣,虽然我已经在评论部分回答了你的问题,但我会进一步解释一下,
首先要注意的是,x.CourseList.Where(y => y.courseID == "1000") 部分将
returnid为1000的课程列表,即使只有一门课程也是
列表。
如果我们要获取每个学生的 ID 为 1000 的课程列表,我们将
最终得到课程列表列表(使用 select)。
所以,这里 select许多将 'List of List of courses' 扁平化为 'List of courses'
合并所有内部课程。
最后,FirstOrDefault() 将确保 return id 为
100,这是您需要的结果。
注意:虽然我使用了术语列表,但您可能正在处理 IEnumerable
希望您和登陆这里的其他人觉得这对您有所帮助。
我有列表“StudentList”(有不止一条记录) 我有另一个列表“CourseList”(包含多个记录) StudentList (1) 到 (*) CourseList [Relationship]
我想检索 courseID(CourseList 中的列)= 1000 的记录;
我试过但无法执行的。
var viewmodel = StudentList.Select(x => x.CourseList.Where(y => y.courseID == "1000"));
提前致谢!
你可以试试这个方法
var result = students.Where(x=>isExistCourse(x));
public static bool isExistCourse(Student student)
{
foreach(var item in student.Courses)
{
if(item.Id==1000)
return true;
}
return false;
}
如果只想获取一条记录,可以将where
换成FirstOrDefault
这是您要找的答案,
var viewmodel = StudentList.SelectMany(x => x.CourseList.Where(y => y.courseID == "1000")).FirstOrDefault();
既然你对它的工作原理和select许多人的作用表现出兴趣,虽然我已经在评论部分回答了你的问题,但我会进一步解释一下,
首先要注意的是,x.CourseList.Where(y => y.courseID == "1000") 部分将 returnid为1000的课程列表,即使只有一门课程也是 列表。
如果我们要获取每个学生的 ID 为 1000 的课程列表,我们将 最终得到课程列表列表(使用 select)。
所以,这里 select许多将 'List of List of courses' 扁平化为 'List of courses' 合并所有内部课程。
最后,FirstOrDefault() 将确保 return id 为 100,这是您需要的结果。
注意:虽然我使用了术语列表,但您可能正在处理 IEnumerable
希望您和登陆这里的其他人觉得这对您有所帮助。