可以SimpleMembership使用EF模型优先?当我尝试它时,当我拨打WebSecurity.InitializeDatabaseConnection.
使用SimpleMembership与EF模型优先
时,我收到“无法找到请求的.NET Framework数据提供程序”:换句话说:当连接字符串使用了连接字符串时,我无法调用WebSecurity.InitializeDatabaseConnection
System.Data.EntityClient
提供者(与使用模型优先范例时一样)。
要与你有模型的第一 User类摄制的问题,创建一个MVC 4应用程序,并更换代码优先用户配置实体类(你获得自由与MVC 4模板)在实体设计创建:
- 在创建一个MVC 4应用程序VS 2012,并添加一个新的空白实体数据模型 。
- 将一个新的实体名为
User
添加到模型中,字段为Id,
UserName, and FullName
。所以,在这一点上,User
数据实体是 映射到Users
表,并通过时髦的连接访问 字符串,它使用System.Data.EntityClient
提供程序。 - 验证EF可以访问
User
实体。执行 的一种简单方法是根据用户表 及其关联的DbContext脚架出用户控制器。 - 编辑
AccountModels.cs
文件删除UserProfile
类和 其关联的UsersContext
类。将对 (现在缺失)UserProfile
和UsersContext
类的引用替换为您的新用户类及其关联的DbContext
类的引用 。 - 将调用InitializeDatabaseConnection从 InitializeSimpleMembershipAttribute过滤器类移到Global.asax.cs中的 Application_Start方法。当您在此时, 修改参数以使用您的新用户实体的连接 字符串,表名和UserId列名称。
- 删除(不再使用)
InitializeSimpleMembershipAttribute
类及其引用。
当你运行摄制,它会在呼叫得到异常到InitializeDatabaseConnection.
鲍勃
你的意思是替换public DbSet UserProfiles {get;组; }(public DbSet userProfiles {get; set;})。我对此有所修正 –
@PeterEdike是的,这就是我想要做的。我尝试用我的模型优先的东西来替换所有代码优先的东西,但是我发现SimpleMembership不适用于连接字符串中的模型优先。正如Mario Zderic所说,解决方案是使用看起来像代码优先的连接字符串。 –