2010-09-10 61 views
9

好的,我放棄了......EF DbContext和StructureMap範圍

我想要的是每個請求共享EF4的DbContext實例。我配置StructureMap這樣的:

For<MyContext>().Use(new MyContext("LocalhostConnString")); 

但是,當我刷新我的網站,甚至在其他瀏覽器中打開它,我得到MyContext的完全相同的情況下。爲什麼這是通過請求共享的?

我錯過了什麼嗎?

回答

13

是...約4個字符。嘗試:

For<MyContext>().Use(() => new MyContext("LocalhostConnString")); 

如果你給StructureMap一個對象實例,它將把該實例作爲一個獨立的,並每次都返回同一個。如果您給它一個創建實例的lambda表達式,則每次請求該類型時都會運行該lambda表達式。

+1

沒辦法......就是這樣,它的工作原理!該死的,謝謝:) – Darmak 2010-09-11 10:21:53

+1

因此,「每次請求類型」,但不是每個請求一次? – 2011-08-18 02:38:04

+1

@Roman Royter正是我的問題。我應該如何處理每個請求? – forhas 2013-03-19 13:37:42