使用where子句交叉连接 [英] Cross Join with Where clause

查看:161
本文介绍了使用where子句交叉连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In Linq i must create a query with method only, i've got 2 tables :

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

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

I must select students (LastName, FirstName) and add to it the grade (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个结果.

But with this request I've only 2 results but I must have 40 results.

推荐答案

这对您有用吗?

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

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

(I do suspect you need either <= or >= in there somewhere.)

这篇关于使用where子句交叉连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆