繁体   English   中英

使用where子句交叉连接

[英]Cross Join with Where clause

在Linq中,我必须仅使用method创建一个查询,我有2个表:

  • 学生(姓,名,结果)
  • 成绩(最高,最低,姓名)

我必须选择学生( LastNameFirstName )并为其添加分数( Result > Min && Result < Max )。

最后,我必须具备:

IEnumerable<T> T => LastName, FirstName, Grade

我尝试这样:

var SAG = dc.Students
            .Where(w => w.Year_Result >= 12)
            .Join(dc.Grades, s => true, g => true, (s, g) => 
                  new { s.LastName, 
                        s.FirstName, 
                        Grade = g.Name
                                 .Where(w => (w.Min < s.Result) 
                                          && (w.Max > s.Result))
                        .FirstOrDefault() }).ToList();

但是有了这个请求,我只有2个结果,但我必须有40个结果。

这对您有用吗?

var SAG =
    from s in dc.Students
    from g in dc.Grades
    where g.Min < s.Result
    where g.Max > s.Result
    select new
    {
        s.LastName, s.FirstName, Grade = g.Name,
    };

(我怀疑您在某处需要<=>= 。)

暂无
暂无

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

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