CSharp - 在 linq on sql中,如何在匿名返回类型中将连接表作为枚举返回?

  显示原文与译文双语对照的内容

我希望返回具有下列签名的对象


class AnonClass{
 string Name {get;}
 IEnumerable<Group> Groups {get;}
}

我已经尝试了以下查询,但是只返回一个实体,而不是所有连接的实体


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};

原作者:
...