我需要帮助将以下ql查询转换为Linq to Sql查询。
select Name, Address
from Entity
group by Name, Address
having count(distinct LinkedTo) = 1
想法是找到只有1个不同LinkedTo值的所有唯一名称,地址对。请记住,表格中还有其他列。
答案 0 :(得分:2)
我会尝试这样的事情:
Entity.GroupBy(e => new { e.Name, e.Address})
.Where(g => g.Select(e => e.LinkedTo).Distinct().Count() == 1)
.Select(g => g.Key);
您应该在该行之后放置一个断点,并检查生成的SQL以查找实际发生在数据库中的内容。
答案 1 :(得分:0)
您可以使用:
from ent in Entities
group ent by new { ent.Name, ent.Address } into grouped
where grouped.Select(g => g.LinkedTo).Distinct().Count() == 1
select new { grouped.Key.Name, grouped.Key.Address }
生成的SQL不使用having
子句。我不确定LINQ可以生成它。