我再次重写我的问题,我没有以正确的方式公开,抱歉。
我有这个SQL查询:
SELECT T1.*, T2.documentNumber
FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON
T2.documentNumber = (
SELECT TOP 1 documentNumber
FROM TABLE2
WHERE description = T1.description)
WHERE T1.color = 'RED';
我需要检索T1
中按颜色过滤的所有行,其中包含相应的T2.documentNumber
值,但唯一T1
行,我的意思是1到1的关系{{1 }}。
T2
和T1
通过T2
列相关联。由于description
中的description
不是唯一的,因此此表可以包含具有相同描述的N行,因为每个t2
行只需要1行,我得到前1个过滤通过唯一列(T1
)。
这个查询对我来说很好,希望我需要知道是Linq-to-SQL的等价物,我试了好几个小时但没有成功。可以请有人帮助我吗?
答案 0 :(得分:2)
尝试
var result = table1.Where(t1 => t1.color == "RED")
.GroupJoin(table2,
t1 => t1.description,
t2 => t2.description,
(t1,g) => new {
T1 = t1,
DocumentNumber = g.FirstOrDefault()
});
必填101链接:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b应该有助于处理这类查询......