2010-10-22 112 views
1

我有一個使用實體框架的asp.net web應用程序。應用程序數據層使用Jordan Van Gogh發現的方法here.簡而言之,此方法使用每個http請求的一個共享objectcontext實例,並使用繼承IHttpModule的AspNetObjectContextDisposalModule進行處理。多實體框架模型和objectcontext

我已經添加了另一個項目,一些附加的表格,並設置了一個數據層,將上述示例複製到我的應用程序中。這個額外的項目和隨後的不同數據模型都可以完美運行我可以使用2個數據層執行不同的操作,但看起來沒有任何後果。當然,對象集在2個數據層中是不同的,因爲它們表示不同的表。

我的問題是這樣的:

是這種方法是一個好主意?我獲得了幕後的大部分內容,但這兩種模型都使用System.Data.Objects.ObjectContext。如果用戶A使用第一個數據層執行操作,同時用戶B使用第二個數據層執行操作,那麼「shared」objectcontext會出現問題嗎?

謝謝。並且溫柔。

編輯 注:我使用不同的OC鍵

+0

如果我的理解正確,那麼您爲每個請求使用一個新實例,對嗎?由於兩個用戶不能共享一個請求,他們應該使用不同的上下文實例。 – StriplingWarrior 2010-10-22 22:41:20

+0

正確。我猜我有點驚慌,因爲objectcontext有這種奇特的感覺。我只是想要一些反饋來保證我自己正確地做到這一點。 – trevorc 2010-10-22 22:47:19

回答

1

您應該確定:

  • 對象上下文是每個HTTP請求,以便從不同的用戶的情況下也不會互相干擾
  • 每個上下文更新不同的表格,以便它們不會互相干擾

您可能需要注意的一件事是兩個用戶同時更新相同的數據。

+0

謝謝設拉子。這也是我的理解。我只是想要一些外部驗證。我有一個if(context.isAttached)方法來處理同時更新,所以我認爲在這方面我沒問題。感謝您的幫助。 – trevorc 2010-10-25 14:59:02