MVC4,EF5,代码优先,VS Express 2012,Win 7 Pro
当我移动
时WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
到Global.asax.cs的Application_Start(我在xxxConfig。文件之前和之后尝试过) 我收到以下错误消息。
无法将文件'D:\ DevProj \ MVC4Test \ MVC4Tst \ App_Data \ aspnet-MVC4Test-20121123150620.mdf'附加为数据库'aspnet-MVC4Test-20121123150620'
它从InitializeSimpleMembershipAttribute运行良好,我通过SSMS删除了所有LocalDB数据库。这是一个使用所有默认值的新MVC4互联网项目(两天前安装了VS 2012 Express)。编辑的唯一内容是移动WebSecurity.InitializeDatabaseConnection,从项目中排除InitializeSimpleMembershipAttribute,并在AccountController中注释掉对它的引用。
任何帮助表示感谢。
答案 0 :(得分:5)
SimpleMembership DB必须在运行之前存在
WebSecurity.InitializeDatabaseConnection("AccountDB", "UserProfile",
"UserId", "UserName", autoCreateTables: true);
一旦创建了SM DB(比如通过迁移),MVC4中的最佳实践是将调用包装在Global.asax.cs的Application_Start部分中的WebSecurity中。
WebSecConfig.RegisterWebSec();
将WebSecConfig.cs文件放在App_Start文件夹中。
WebSecConfig.cs
using WebMatrix.WebData;
namespace MVC4Test
{
public static class WebSecConfig
{
public static void RegisterWebSec() {
WebSecurity.InitializeDatabaseConnection("AccountDB", "UserProfile",
"UserId", "UserName", autoCreateTables: true);
}
}
}