CROSS JOIN与Where子句(Cross Join with Where clause)

2019-10-19 08:07发布

在LINQ我必须创建方法而已,我有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个结果。

Answer 1:

这会为你工作?

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

(我怀疑你需要或者<=>=在那里的某个地方。)



文章来源: Cross Join with Where clause
标签: c# linq join where