1

我需要帮助将以下 ql 查询转换为 Linq to Sql 查询。

select Name, Address
from Entity
group by Name, Address
having count(distinct LinkedTo) = 1

想法是找到只有 1 个不同的 LinkedTo 值的所有唯一名称、地址对。请记住,表中还有其他列。

4

2 回答 2

2

我会尝试这样的事情:

Entity.GroupBy(e => new { e.Name, e.Address})
      .Where(g => g.Select(e => e.LinkedTo).Distinct().Count() == 1)
      .Select(g => g.Key);

您应该在该行之后放置一个断点并检查生成的 SQL 以找到真正进入数据库的内容。

于 2013-02-25T09:33:52.897 回答
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 是否可以生成它。

于 2013-02-25T09:46:41.220 回答