使用where子句交叉连接 [英] Cross Join with Where clause
本文介绍了使用where子句交叉连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Linq中,我必须仅使用方法创建查询,我有2个表:
In Linq i must create a query with method only, i've got 2 tables :
- 学生(姓,名,结果)
- 成绩(最高,最低,姓名)
我必须选择学生(LastName
,FirstName
)并添加分数(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屋!
查看全文