Я хочу вернуть объект со следующей подписью
class AnonClass{
string Name {get;}
IEnumerable<Group> Groups {get;}
}
Я пробовал следующий запрос, но g возвращает только один объект, а не все соединенные объекты.
var q = from t in dc.Themes
join g in dc.Groups on t.K equals g.ThemeK
select new {t.Name, Groups = g};
return q.ToArray();
но это возвращается
class AnonClass{
string Name {get;}
Group Groups{get;}
}
Какой правильный запрос linq использовать?





Я думаю, вы хотите «присоединиться», а не просто «присоединиться»:
var q = from t in dc.Themes
join g in dc.Groups on t.K equals g.ThemeK into groups
select new { t.Name, Groups=groups };
(Однако это совершенно не проверено - стоит попробовать, но, пожалуйста, проверьте внимательно!)
Если у вас правильно настроен внешний ключ, он должен быть:
var q = from t in dc.Themes
select new {t.Name, Groups = t.Groups};
У меня было что-то подобное раньше, но свойство Groups загружается лениво, что приводит к множеству вызовов sql, когда я пытаюсь его перечислить.