2012-09-24 28 views
0

可以說我需要對數據庫執行多個不同的查詢。每個查詢返回不同的數據。每個查詢將在與UI線程不同的線程上執行。異步獲取數據的推薦策略

我應該有一個線程的所有查詢到數據庫,或者我可以自由地有一個線程每個查詢?建議的做法是什麼?

回答

1

ObjectContext/DbContext實例應該用於併發數據庫訪問,因爲它不適合這樣的場景。

與不同上下文實例加載的對象進行交互很容易出錯,因爲所有相關實體實例都應該屬於單個上下文實例。否則,你必須附加和分離實體。

如果所有的操作都是讀取操作,那麼首先有多個線程來檢索數據,而對於CRUD操作,建議使用線程的單個上下文實例。

+0

嗨Eranga。常見的情況是,我們需要加載一組旨在用於CRUD的項目,以及一組或多組旨在用於只讀訪問的項目(針對CRUD集合的參考)。目前我們所做的是創建新線程,並且在該線程中我們按順序獲取所有數據(使用協程)。這意味着數據以異步方式檢索,但我們沒有並行查詢。你覺得這種方法好嗎,或者如果沒有,你能推薦另一種嗎? – Goran

+0

@Goran只要查詢是連續的,那麼這種方法是可以的。 – Eranga