Учитывая этот код:Linq к SQL: DISTINCT с анонимными типами
dgIPs.DataSource =
from act in Master.dc.Activities
where act.Session.UID == Master.u.ID
select new
{
Address = act.Session.IP.Address,
Domain = act.Session.IP.Domain,
FirstAccess = act.Session.IP.FirstAccess,
LastAccess = act.Session.IP.LastAccess,
IsSpider = act.Session.IP.isSpider,
NumberProblems = act.Session.IP.NumProblems,
NumberSessions = act.Session.IP.Sessions.Count()
};
Как вытащить Distinct() на основе только отдельного адреса? То есть, если я просто добавлю Distinct(), он оценит всю строку как отдельную и, следовательно, не найдет дубликатов. Я хочу вернуть ровно одну строку для каждого объекта act.Session.IP.
Я уже нашел this answer, но это похоже на другую ситуацию. Кроме того, Distinct() отлично работает, если я просто выбираю act.Session.IP, но у него есть столбец, который я хочу избежать, и я не хочу этого делать, привязывая вручную столбцы datagrid вручную.
Я пробовал этот подход, и при профилировании результат нашел, что он сгенерировал довольно красивый SQL – LaserJesus
Brehtt, согласился. Кажется, что он всегда запрашивает db как минимум дважды. –