如何在linq中将匿名返回类型的连接表作为枚举返回给sql?

时间:2008-10-31 14:48:11

标签: c# linq-to-sql

我想返回一个带有以下签名的对象

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查询是什么?

2 个答案:

答案 0 :(得分:1)

我认为你想要“加入”而不只是“加入”:

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

(这是完全未经测试的,但值得一试,但请仔细核实!)

答案 1 :(得分:1)

如果您正确设置了外键,那么它应该是:

var q = from t in dc.Themes
select new {t.Name, Groups = t.Groups};