EF DbContext和StructureMap范围

Dar*_*mak 8 structuremap entity-framework-4

好的,我放弃了......

我想要的是每个请求共享EF4的DbContext实例.我像这样配置了StructureMap:

For<MyContext>().Use(new MyContext("LocalhostConnString"));
Run Code Online (Sandbox Code Playgroud)

但是当我刷新我的网站,或者甚至在另一个浏览器中打开它时,我得到了 MyContext 完全相同的实例.为什么这些请求共享?

我错过了什么吗?

Jos*_*gan 13

是的...大约4个字符.尝试:

For<MyContext>().Use(() => new MyContext("LocalhostConnString"));
Run Code Online (Sandbox Code Playgroud)

如果为StructureMap提供一个对象实例,它会将该实例视为单例并且每次都返回相同的实例.如果您给它一个创建实例的lambda,它将在每次请求类型时运行该lambda.