2015-06-12 35 views
1

比方說,我在做這樣的下方加入:使用for-each和Contains加入查詢有什麼區別嗎?

var query1 = (from ga in this.Context.GroupAddress 
    join gpa in this.Context.GroupsProvidersAddresses on ga.GroupAddress_K equals gpa.GroupAddress_K 
    where this.TerminatedGroupAddressesKeys.Contains(ga.GroupAddress_K) 
      select gpa.ProviderAddress_K).ToList(); 

其中TerminatedGroupAddressesKeys是,我已經和我使用的字符串的集合。 Contains

是從上TerminatedGroupAddressesKeysfor-each loop,說那裏ga.GroupAddress_K == forEachItemInTheLoop

+3

是的,包含將在數據庫上執行,因爲每個都將在客戶端執行。 – dotctor

+0

你使用EF嗎?如果是這樣,請相應添加標籤! –

回答

1

你一定要使用含有,因爲它會在數據庫中執行,並降低將客戶端和數據庫之間傳送的數據的大小不同。同樣使用foreach會降低代碼的可讀性

+0

謝謝,不知道。但如果他們返回的結果,他們會是一樣的?對? – Bohn

+0

我不這麼認爲,這都是關於你擁有的數據。由於加入,會有許多重複的記錄,並且可能會在您使用for-each進行篩選時出現問題 – dotctor

+0

我應該如何知道應該使用哪一個,然後結果會不同? :( – Bohn

相關問題