C# 如何在LINQ中使用外键列检索单个记录?
我有“学生名单”(有多个记录) 我还有一个“课程列表”(包含多个记录) 学生名单(1)至(*)课程名单[关系] 我想检索courseID(CourseList中的列)=1000的记录 我尝试过但无法执行的内容C# 如何在LINQ中使用外键列检索单个记录?,c#,sql,entity-framework,linq,linq-to-sql,C#,Sql,Entity Framework,Linq,Linq To Sql,我有“学生名单”(有多个记录) 我还有一个“课程列表”(包含多个记录) 学生名单(1)至(*)课程名单[关系] 我想检索courseID(CourseList中的列)=1000的记录 我尝试过但无法执行的内容 var viewmodel = StudentList.Select(x => x.CourseList.Where(y => y.courseID == "1000")); 提前谢谢 你可以试试这个方法 var result = stud
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 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
替换为first或default
以下是您想要的答案
var viewmodel = StudentList.SelectMany(x => x.CourseList.Where(y => y.courseID == "1000")).FirstOrDefault();
由于您对它的工作方式以及selectMany的功能表现出了兴趣,尽管我已经在评论部分回答了您的问题,但我还是想进一步解释一下
希望你和任何登陆这里的人都觉得这很有帮助。这是你一直在寻找的答案
var viewmodel = StudentList.SelectMany(x => x.CourseList.Where(y => y.courseID == "1000")).FirstOrDefault();
由于您对它的工作方式以及selectMany的功能表现出了兴趣,尽管我已经在评论部分回答了您的问题,但我还是想进一步解释一下
希望您和任何登陆这里的人都会觉得这很有帮助。我想,您的目的是获取id值为1000的单个课程,但实际上您正在将课程列表返回到viewmodel。你能试着按照这句话来做,看看最终的结果吗?var viewmodel=StudentList.SelectMany(x=>x.CourseList.Where(y=>y.courseID==“1000”).FirstOrDefault();谢谢你,这个很有魅力!我想问一下为什么要使用selectmany?我想,您的目的是获得id值为1000的单个课程,但实际上是将课程列表返回给viewmodel。你能试着按照这句话来做,看看最终的结果吗?var viewmodel=StudentList.SelectMany(x=>x.CourseList.Where(y=>y.courseID==“1000”).FirstOrDefault();谢谢你,这个很有魅力!请问为什么使用select many?谢谢您的评论。我正在寻找一行LINQ查询谢谢你的评论。我正在寻找一行LINQ查询