高效查询多对多表

时间:2009-08-14 02:39:25

标签: sql linq

我正在为我的模拟repositoy编写单元测试。虽然真正的存储库位于linq2sql上,但模型只使用linq2sql对象列表。当涉及多对多表时,效率相当低。

这是Senario。

我有一个many2many表,它是tablePersonInCommunity,存储了一个CommunityID和一个PersonID。还有一个很多的表tablePersionInContact,存储一个ContactID和一个PersionID。 ContactID指向Contact表的实体。具有以下结构:

ContactID int, ContactType int(商业或家庭), 地址1字符串, 地址2字符串, ...

现在,我想获得一个如下记录: PersionID,BusinessContact,HomeContact

最有效的解决方案是什么?当我对列表模型进行测试时,我的简单测试包括100个人的信息导致超时。

提前致谢!

1 个答案:

答案 0 :(得分:0)

答案是确保您的表格具有正确的索引策略。

所以...在你的多对多表上,在(ContactID,PersonID)上有一个索引,在(PersonID,ContactID)上有另一个索引,这样你的查询就可以应付通过联系人或联系人查找人员了人

罗布