SimpleMembership可以与EF 模型优先一起使用吗?当我尝试它时,我在调用时收到“无法找到请求的 .NET Framework 数据提供程序”WebSecurity.InitializeDatabaseConnection.
WebSecurity.InitializeDatabaseConnection
换句话说:当连接字符串使用System.Data.EntityClient
提供者时(就像使用模型优先范式时一样),我无法调用 to work。
要重现此问题,请创建一个 MVC 4 应用程序,并将代码优先的UserProfile 实体类(您可以使用 MVC 4 模板免费获得)替换为您在实体设计器中创建的模型优先的用户类:
- 在VS 2012中创建一个 MVC 4 应用程序并添加一个新的空白实体数据模型。
- 添加一个名为
User
模型的新实体,其字段为Id,
UserName, and FullName
. 因此,此时,User
数据实体被映射到一个Users
表,并通过一个使用System.Data.EntityClient
提供程序的时髦连接字符串进行访问。 - 验证EF是否可以访问
User
实体。一种简单的方法是根据 User 表及其关联的 DbContext 搭建一个 Users 控制器。 - 编辑该
AccountModels.cs
文件以删除UserProfile
该类及其关联的UsersContext
类。用对新 User 类及其关联类的引用替换对(现在缺少的)UserProfile
和类的引用。UsersContext
DbContext
- 将对 InitializeDatabaseConnection 的调用从 InitializeSimpleMembershipAttribute 过滤器类移至 Global.asax.cs 中的 Application_Start 方法。当您使用它时,修改参数以使用您的新用户实体的连接字符串、表名和 UserId 列名。
- 删除(不再使用的)
InitializeSimpleMembershipAttribute
类和对它的引用。
当您运行repro时,它会在调用InitializeDatabaseConnection.
鲍勃