【发布时间】:2014-03-17 09:58:20
【问题描述】:
自从我试图提出一种优化的查询方式以来,这一直困扰着我。
假设我有 3 个交叉引用表,它们共享一个公共列,该公共列将对包含更多信息的主表进行最终连接。
例如:
假设我有以下内容:
Customers //properties: ID, Name, Address
IEnumberable<CustomerSports> //properties: CustomerID, SportsID
IEnumberable<CustomerLocation> //properties: CustomerID, LocationID
IEnumberable<CustomerPets> //properties: CustomerID, PetsID
所以我可以进行如下查询:
请给我一份居住在纽约 (CustomerLocation) 的客户名单,其中包括打曲棍球、橄榄球、足球 (CustomerSports)... 并养狗和猫 (CustomerPets)。查找表可以为空,因此客户可以进行运动,但没有宠物。
然后,当我获得客户列表时,我将加入客户表中的公共列 (CustomerID) 以检索 ID、名称和地址。
我正在考虑让客户表在每次查找时加入,然后进行联合以获取客户列表,但我不知道这是否是正确的做法。
【问题讨论】:
-
您想要拥有宠物或从事运动的客户(左外连接),还是只想要拥有/拥有所有这些东西的客户? (您在问题中使用了 AND 一词,但您提到一些客户可以做一个但不能做另一个的事实让我认为您的意思是 OR)。
-
浏览这里可能会带来一些见解。 msdn.microsoft.com/en-us/library/bb399397%28v=vs.110%29.aspx
标签: c# linq cross-reference