【发布时间】:2011-11-28 13:11:49
【问题描述】:
我正在构建一个自定义成员资格提供程序,我想知道我的自定义成员资格提供程序什么时候初始化?
实际上我使用的是实体框架,所以我需要了解是在每个方法中初始化 DbContext 还是将其作为类实例变量。
【问题讨论】:
标签: asp.net entity-framework asp.net-membership
我正在构建一个自定义成员资格提供程序,我想知道我的自定义成员资格提供程序什么时候初始化?
实际上我使用的是实体框架,所以我需要了解是在每个方法中初始化 DbContext 还是将其作为类实例变量。
【问题讨论】:
标签: asp.net entity-framework asp.net-membership
正如@feanz 链接中提到的,每个应用程序域仅创建一次。共享DbContext 不是一个好主意。因为DbContext/ObjectContext 不是线程安全的。因为成员资格提供者只有一个实例,并且在 ASP.NET 应用程序中有并发请求共享DbContext 实例将无法正常工作。
所以最好/安全地在每个方法中创建一个DbContext 的实例以避免不必要的副作用。
【讨论】:
您可以查看 PostgreSQL Membership Provider,您可以从here 下载代码。它仅使用 ADO.NET(NO ORM),但应该足以让您有所了解。
【讨论】: