转换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值。请记住,表格中还有其他列。
答
我会尝试这样的事:
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可以生成。
你试过了什么? – Alex 2013-02-25 11:40:00