var nodes = (from n in db.Nodes
join st in db.SessionTrackings on n.NodeID equals st.NodeID
where st.UserID == userid && st.GroupID == groupid
select n);
IDictionary<int, bool> trackingData = new Dictionary<int, bool>();
foreach (Node n in nodes)
{
trackingData.Add(new KeyValuePair<int, bool>(n.ID, true));
}
Я продолжаю получать «этот ключ уже был добавлен», потому что может быть много SessionTrackings на узел, однако я просто хочу вернуть все узлы, которые имеют хотя бы 1 SessionTracking для NodeID, но мне не нужно чтобы получить Узлы более одного раза. Если для узла есть 4000 SessionTrackings (скажем, ID = 45), у меня все еще только один экземпляр 45 в моем IQueryable. Как я могу изменить свой запрос для этого? Пожалуйста, не беспокойтесь о том, зачем мне это нужно в Словаре, который таков.