我需要帮助将以下 ql 查询转换为 Linq to Sql 查询。
select Name, Address
from Entity
group by Name, Address
having count(distinct LinkedTo) = 1
想法是找到只有 1 个不同的 LinkedTo 值的所有唯一名称、地址对。请记住,表中还有其他列。
我需要帮助将以下 ql 查询转换为 Linq to Sql 查询。
select Name, Address
from Entity
group by Name, Address
having count(distinct LinkedTo) = 1
想法是找到只有 1 个不同的 LinkedTo 值的所有唯一名称、地址对。请记住,表中还有其他列。
我会尝试这样的事情:
Entity.GroupBy(e => new { e.Name, e.Address})
.Where(g => g.Select(e => e.LinkedTo).Distinct().Count() == 1)
.Select(g => g.Key);
您应该在该行之后放置一个断点并检查生成的 SQL 以找到真正进入数据库的内容。
你可以使用:
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 是否可以生成它。