2014-01-16 23 views
0

我有一個包含2個不同的實體查詢Azure Table中只返回特定實體

這兩個實體有相同的分區鍵蔚藍的表,這是故意設計使這些實體

存儲在一個劃分。

行鍵當然是唯一的。

是否可以通過分區鍵只查詢特定實體?

或者我必須手動創建一個屬性作爲每個實體在同一個 天藍色表中的標識符?

基本上我的桌子的形狀是

Partition Key| Row Key |Entity Type | 
==================================== 
1   | X  | Entity A 
1   | Y  | Entity B 
1   | Z  | Entity B 

我只想用Partition Key 1

+0

我不太確定你的意思是'通過分區鍵只查詢一個特定的實體'。正如你所提到的,這兩個實體有不同的行鍵,那麼你可以指定行鍵和分區鍵來檢索你想要的。可能會更好地提供更多信息。 –

+0

對不起,我沒有提供足夠的細節,我更新了問題,我想要檢索的實體有多行,這就是爲什麼我不能檢索由PK和RK,因爲它只會返回1行 – reggieboyYEAH

+1

如果你可以利用一些現有的屬性那麼你可以基於它們進行查詢,但如果沒有,我認爲你必須添加一個屬性。 –

回答

1

要查詢特定實體,您需要提供分區和行密鑰。

如果僅查詢分區鍵,則會得到具有該分區鍵的所有行。

在上例中,使用分區鍵和'實體類型'進行查詢的效率將低於查詢分區鍵和行鍵的效率。如果分區很大,由於需要進行分區掃描,查詢速度可能會很慢。

+0

嗯,我得到了TableQuery <>困惑,因爲它的泛型,我想如果我指定類型它只會返回我的類型。 – reggieboyYEAH

+1

正確。該類型適用於表中的所有行,而不適用於該類型的特定實例。 – hocho

+0

@Shaun Xi,哦,我想我只需要做一個解決方法,並根據它添加一個屬性和過濾器。 – reggieboyYEAH