c# - 如何将此 SQL 查询转换为实体框架 lambda 表达式?
问题描述
如何在实体框架中使用 lambda 表达式进行此查询?
select
s.StudentID, s.StudentName, s.StudentSurName, s.Point
from
Student s
join
StudentContest sc on s.StudentID = sc.StudentId
join
Contest c on c.ContextID = sc.ContestId
where
c.ContextDate < GETDATE()
解决方案
我做了一个基于类的模型来显示结果
class Program
{
static void Main(string[] args)
{
DateTime date = DateTime.Now;
DataBase db = new DataBase();
var results = (from s in db.Student
join sc in db.StudentContest on s.StudentID equals sc.StudentId
join c in db.Contest.Where(x => x.ContextDate < date) on sc.ContextID equals c.ContestId
select new { StudentID = s.StudentID, StudentName = s.StudentName, StudentSurName = s.StudentSurName, Point = s.Point }
).ToList();
}
}
public class DataBase
{
public List<StudentContest> StudentContest { get; set; }
public List<Student> Student { get; set; }
public List<Contest> Contest { get; set; }
}
public class StudentContest
{
public string StudentId { get; set;}
public string ContextID { get; set;}
}
public class Student
{
public string StudentID { get; set;}
public string StudentName { get; set;}
public string StudentSurName { get; set;}
public string Point { get; set;}
}
public class Contest
{
public string ContestId { get; set;}
public DateTime ContextDate { get; set; }
}
推荐阅读
- java - ArrayIndexOutOfBoundsException: 0 在 Karatsuba 实现中
- python - 尝试使用 csv 文件提供的信息从另一个数据帧创建新数据帧
- google-api - 谷歌云语音 API。帮助让 Google 自己的示例发挥作用
- python - 请求没有内容长度
- javascript - 以跨平台方式处理 React/React-Native 中的文本输入事件?(e.target.value 与 e.nativeTarget.text)
- python - 显示股价上下波动概率的熊猫系列函数
- python - 将两个字典合并到Python中的字典字典中
- swift - 滑动到下一张图片时,PageControl 没有动画
- html - 重定向时如何保留我的网站的标题和图标?
- javascript - 为屏幕中的大量视图反应原生性能