【发布时间】:2014-05-03 18:39:06
【问题描述】:
我最近遇到了一些看起来像这样的 SQL 代码
SELECT
a.Id,
b.Id,
c.Id,
d.Id,
b.Name,
d.Occupation,
FROM TableA a
JOIN TableB b ON a.Id = b.Id
JOIN TableC c ON b.Id = c.Id AND b.Name = a.Name
JOIN tableD d ON c.Id = d.Id AND c.Occupation = d.Occupation
我从来没有在相应的 LINQ 查询中像这样在 JOIN 中使用 AND(对于上下文,我对所有查询都使用实体框架和 LINQ)。我通常把所有的 AND 都放在 where 子句中,如下所示:
var query = from a in dbContext.TableA
join b in dbContext.TableB on a.Id equals b.Id
join c in dbContext.TableC on b.Id equals c.Id
join d in dbContext.TableD on c.Id equals d.Id
where b.Name = a.Name
where c.Occupation = d.Occupation
select new
{
AId = a.Id,
BId = b.Id,
CId = c.Id,
DId = d.Id,
BName = b.Name,
DOccupation = d.Occupation,
};
我可以使用什么技术来让我的 LINQ 查询匹配上面的 SQL 语句?
【问题讨论】:
标签: c# sql linq entity-framework tsql