如何嵌套解析表达式.NET C#

How to nested parsing expression .NET C#

如何嵌套解析表达式,我正在开发an ORM,谁能帮我出出主意?

var list = db.Queryable<Student>()
    .Where(it => it.Id.Equals(db.Queryable<School>()
    .Where(sc => sc.Id == it.Id&&sc.Name=="jack"))).ToList() 

为此目的使用 LINQ 连接是更好的选择。

示例:

1| LINQ query-syntax

var list = (from s in db.Student 
          join sc in db.School on s.SchoolId equals sc.Id
          where sc.Name=="jack"
         select s).ToList() ;

2| LINQ Extension method

var list = db.Student.Join(db.School,
                 s => s.SchoolId,
                 sc => sc.Id,
                 (s, sc) => new { s, sc })
           .Where(ss => ss.sc.Name=="jack")
           .Select(ss => ss.s).ToList();

您可以在 this 答案中获得有关查询语法和扩展方法的更多信息。