2009-08-14 116 views
0

我正在編寫我的模擬repositoy的單元測試。雖然真正的存儲庫位於linq2sql上,但模型只使用linq2sql對象列表。當談到多桌時,效率相當低。多對多的高效查詢表

這裏是塞納里奧。

我有一個many2many表,它是tablePersonInCommunity,存儲一個CommunityID和一個PersonID。並且還有一個many2many表tablePersionInContact,存儲一個ContactID和一個PersionID。 ContactID指向Contact表的一個實體。其具有以下結構:

的ContactID INT, ContactType INT(企業或家庭), 地址1串, 地址2串, ...

現在,我想獲得一個記錄是這樣的: PersionID,BusinessContact,HomeContact

什麼是最有效的解決方案?我對包含100個人的信息進行的簡單測試導致了當我對列表模型進行測試時超時。

在此先感謝!

回答

0

答案在於確保您的表格具有正確的索引策略。

因此...在您的多對多表上,在(ContactID,PersonID)上有一個索引,在(PersonID,ContactID)上有另一個索引,以便您的查詢可以應付通過聯繫人或聯繫人查找人員由人。

Rob

+0

謝謝。但是我正在對基於列表的模型進行單元測試。沒有辦法添加索引。我在我的代碼中使用了另一種算法。比以前更快。謝謝你們一樣! – Roy 2009-08-14 03:36:00