转换Sql查询与分组通过和具有子句Linq在C#中的SQL查询#

问题描述:

我需要帮助转换后面的ql查询到Linq到SQL查询。转换Sql查询与分组通过和具有子句Linq在C#中的SQL查询#

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

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

+1

你试过了什么? – Alex 2013-02-25 11:40:00

我会尝试这样的事:

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可以生成。