2012-08-29 28 views
0

四處收集在這樣的兩個表從外鍵

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>是空的。我應該如何更改查詢以獲取人員列表?

回答

0

我解決了問題:

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

BTW:什麼是LINQ查詢from...where...select相當於Include()

+1

'from a myDataBase.Group.Include(「Person」)select a;'是等價的。 –

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類型的集合),並希望找到所有來自該集合的人員以及來自相關Group的匹配信息。

如果這不是你要求的,請澄清。

+0

嗯,爲什麼我得到不正確的結果?我的意思是集合中的人仍然是0(在SQL管理工作室中的同一個查詢顯示正確的結果,即一行)。 – Saint

+0

當我第一次使用它時,我的計數器= 1 ..但現在有些事情是錯的。數據庫是一樣的,行是一樣的 – Saint

+0

@Saint:你可以使用[LinqPAD](http://www.linqpad.net/)並在其中運行你的LINQ查詢。在切換到SQL選項卡後,查看LINQ-TO-SQL查詢生成的*實際*,並自然可以與SQL查詢進行比較。 – Tigran