我熟悉使用 aspnet_regsql.exe
创建成员资格数据库(它会生成11个表)。
然而,在我的MVC4项目中,VS2010只创建了一个包含六个表(Applications、Memberships、Profiles、Roles、Users和UsersInRoles)的成员资格数据库。
如何创建一个具有这种(新的?)架构的数据库呢?
我熟悉使用 aspnet_regsql.exe
创建成员资格数据库(它会生成11个表)。
然而,在我的MVC4项目中,VS2010只创建了一个包含六个表(Applications、Memberships、Profiles、Roles、Users和UsersInRoles)的成员资格数据库。
如何创建一个具有这种(新的?)架构的数据库呢?
<add name="DefaultConnection" connectionString="uid=****;pwd=*****;server=(local);database=****" providerName="System.Data.SqlClient" />
验证过滤器\ InitializeSimpleMembershipAttribute.cs
第41行应该写成:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
在安装功能时,您需要添加一些参数:http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx
您可以运行Aspnet_regsql.exe而不带任何命令行参数,以运行向导,该向导将指导您完成安装过程。
缺少哪些表格,哪些表格被创建了?
aspnet_regsql.exe
是ASP.Net架构的一部分,而不是MVC。
我猜MVC4开发预览版在其项目结构中附带了一些自定义模式脚本,或者它安装了新的ASP.Net 4.5版本的aspnet_regsql.exe
的预览版。
如果后者是真的,你可以使用它创建一个数据库,并将其连接到你的MVC3(及以前版本)应用程序。这里的影响是由于模式差异,你很可能需要编写自己的提供程序。
另一个选择是在MVC4模板中创建数据库,删除该项目,并在MVC3项目中编写一个使用该数据库的DA层。你只需要获取连接字符串即可。但同样需要编写自己的提供程序,因为旧的提供程序不知道新的6个表模式。