从外键获取集合

时间:2012-08-29 09:07:02

标签: c# sql-server entity-framework linq-to-entities

在这两个表中

table Person
{
    int Id -> primary key
    varchar name
    varchar nick
    int GroupId -> foreign key
}

table Group
{
    int Id -> primary key
    varchar name
}

如果我使用

var result = (from c in myDataBase.Group
             select c).ToList<Group>();

我只获得组列表,但字段System.Data.Objects.DataClasses.EntityCollection<Person>为空。我该如何更改查询以获取人员列表?

2 个答案:

答案 0 :(得分:1)

目前尚不清楚System.Data.Objects.DataClasses.EntityCollection<Person>必须在哪里,但我推测您正在搜索Inner join

  var query = from person in people
                join group in groups on person.GroupId equals group .Id
                select new {.. something... };

这里我推测你有peoplePerson类型的集合),并希望找到该集合中的所有人及其相关{{1}的匹配信息}。

如果这不是您所要求的,请澄清。

答案 1 :(得分:0)

我解决了问题:

myDataBase.Group.Include("Person").Select(a => a).ToList();

顺便说一下:linq查询Include()中的from...where...select相当于什么?