2011-01-28 119 views
0

我試圖修改以下查詢以從多個表中返回數據。我怎樣才能從多個表中返回數據?

我有所有聯繫信息都存儲在主觸點表。公司也存儲在聯繫人表格中。公司在名爲CompanyPersonMap的連接表中映射到聯繫人。

我也有其觸點被分配某些屬性,每個接觸可能許多的屬性表。

現在,我想回到那個有分配一定的屬性加人的公司名稱和地址在不同的行中的聯繫人表中找到的所有聯繫人。

此代碼有效,但只返回contactId。對於我所需要的很好,但我無法弄清楚如何針對上述要求對其進行修改。

var peopleAndAddresses = Contacts.Where(c => c.AssignedAttributes 
.Any (aa => aa.AttributeID == 1153)) 
.Select(x => x.ContactID); 

對此有何建議?

謝謝!

編輯 -

我試圖對。選擇()語句工作,找到的路徑經由PersonOrgMap表中的接觸到它的organzation。不幸的是,我無法獲得有關該組織的任何數據。我嘗試過.Any(),.All()和.FirstOrDefault()。有什麼建議麼?

。選擇(C =>新{c.FirstName,c.LastName,c.PersonOrgMap.FirstOrDefault(POM => pom.ChildContactID)})

回答

0

下面這段代碼將讓你有在所有聯繫人至少有一個AttributeID爲1153的AssignedAttribute。我想這就是你要找的。

var peopleAndAddress = Contacts 
    .Where(c => c.AssignedAttributes.Any(aa => aa.AttributeID == 1153)) 
    .Select(c => c); 

但是,您的語句「在聯繫人表中的不同行中找到的名稱和地址」使我認爲這可能不是您所需要的。你能否從公司名稱和地址獲取聯繫人的房產?

+0

不,我看不到公司和公司地址信息。 – DenaliHardtail 2011-01-28 21:37:22