2010-09-10 18 views
9

Ok, me rindo ...EF DbContext y StructureMap alcance

Lo que quiero es compartir instancia DbContext del EF4 por solicitud. He configurado StructureMap así:

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

Pero cuando restauro mi sitio, o incluso abrirlo en otro navegador, tengo la misma instancia exacta de MyContext. ¿Por qué esto se comparte entre las solicitudes?

¿Echo de menos algo?

Respuesta

13

Sí ... aproximadamente 4 caracteres. Proveedores:

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

Si das StructureMap una instancia de objeto, se tratará a esa instancia como un conjunto unitario y devolver el mismo cada vez. Si en cambio le das un lambda que crea una instancia, ejecutará esa lambda cada vez que se solicite el tipo.

+1

De ninguna manera ... eso fue todo, ¡funciona! Maldición, gracias :) – Darmak

+1

Entonces, ¿"cada vez que se solicita el tipo", pero no una vez por solicitud? –

+1

@Roman Royter Exactamente mi pregunta. ¿Cómo debo hacerlo por solicitud? – forhas

Cuestiones relacionadas