繁体   English   中英

如何将此 SQL 查询转换为实体框架 lambda 表达式?

[英]How to turn this SQL query into a Entity Framework lambda expression?

如何在实体框架中使用 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()

我根据类制作了 model 以显示结果

   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; }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM