2010-09-10 11 views
9

Ok, mi arrendo ...EF DbContext e StructureMap scoping

Quello che voglio è quello di condividere esempio DbContext del EF4 per ogni richiesta. Ho configurato StructureMap come questo:

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

Ma quando rinfresco il mio sito, o addirittura aprirlo in un altro browser, ho la stessa istanza esatto di myContext. Perché questo è condiviso tra le richieste?

mi sto perdendo qualcosa?

risposta

13

Sì ... circa 4 caratteri. Prova:

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

Se si dà StructureMap un'istanza di un oggetto, si tratterà tale istanza come un Singleton e restituire la stessa ogni volta. Se invece gli dai un lambda che crea un'istanza, eseguirà quel lambda ogni volta che viene richiesto il tipo.

+1

In nessun modo ... è stato così, funziona! Dannazione, grazie :) – Darmak

+1

Quindi, "ogni volta che il tipo viene richiesto", ma non una sola volta per richiesta? –

+1

@Roman Royter Esattamente la mia domanda. Come dovrei farlo per richiesta? – forhas