我怎样才能从多个表中返回数据?
问题描述:
我试图修改以下查询以从多个表中返回数据。我怎样才能从多个表中返回数据?
我有所有联系信息都存储在主触点表。公司也存储在联系人表格中。公司在名为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)})
答
下面这段代码将让你有在所有联系人至少有一个AttributeID为1153的AssignedAttribute。我想这就是你要找的。
var peopleAndAddress = Contacts
.Where(c => c.AssignedAttributes.Any(aa => aa.AttributeID == 1153))
.Select(c => c);
但是,您的语句“在联系人表中的不同行中找到的名称和地址”使我认为这可能不是您所需要的。你能否从公司名称和地址获取联系人的房产?
不,我看不到公司和公司地址信息。 – DenaliHardtail 2011-01-28 21:37:22