求一条linq查询语句。该如何解决
求一条linq查询语句。
评分系统,查询6月到8月所有的评分信息,包括未评或已评分数。
环境
Table1 Table2
Name Name Month Score
----------- ---------------------
A A 8 35
B B 8 45
C C 8 54
C 7 78
期望的查询结果:
Name Month Score
A 6 NA
A 7 NA
A 8 35
B 6 NA
B 7 NA
B 8 45
C 6 NA
C 7 78
C 8 54
注:已评分的显示分数,没有评分的显示“NA”。
不知道说清楚没,对linq不是很了解。
------解决方案--------------------
------解决方案--------------------
楼上好像不对呀。
以下是我的,替换成Table1 和 Table2就可以了。
评分系统,查询6月到8月所有的评分信息,包括未评或已评分数。
环境
Table1 Table2
Name Name Month Score
----------- ---------------------
A A 8 35
B B 8 45
C C 8 54
C 7 78
期望的查询结果:
Name Month Score
A 6 NA
A 7 NA
A 8 35
B 6 NA
B 7 NA
B 8 45
C 6 NA
C 7 78
C 8 54
注:已评分的显示分数,没有评分的显示“NA”。
不知道说清楚没,对linq不是很了解。
------解决方案--------------------
var ay=new int[]{6,7,8};
var query=from t1 in Table1
join t2 in Table2.Where(s=>ay.Contains(s.Month))
on t1.Name equals t2.Name into t
from t2 in t.DefaultIfEmpty()
from x in ay
orderby t2.Name,t2.Month
select new Table2
{
Name=t1.Name,
Month=x,
Score=t2==null?"NA":t2.Score
};
------解决方案--------------------
楼上好像不对呀。
以下是我的,替换成Table1 和 Table2就可以了。
class CJoin
{
class T
{
public string Name { get; set; }
public int Month { get; set; }
public string Score { get; set; }