我使用VS2012,SQLExplress,最新的.net版本,代码优先实体框架和迁移构建一个简单的webb应用程序。我使用VS2012中的标准MVC4模板构建,该模板使用新的简单成员资格作为默认值。
我的问题是我无法让Websecurity类使用我创建的数据库。我在我的Glabal.asax.cs中使用了这段代码:
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(
"DefaultConnection",
"UserProfile",
"UserId",
"UserName",
autoCreateTables: true);
我已尝试在迁移种子方法中运行此代码段,但结果相同。
我的connectionstring看起来像这样
<add name="DefaultConnection" connectionString="Data Source=localhost\SQLEXPRESS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />
当我使用autoCreateTables: true
参数运行初始化程序时,initalizer会创建一个仅在VS2012中可见的新连接。
这张图显示了一个名为SecurityConnection2的连接,因为我试图强制websecurity使用另一个连接字符串,但其行为与使用DefaultConnection时的行为相同。 正如您所看到的,它会在此新连接中创建所有表,并且我无法在数据库中的任何位置找到tats表。
如果我改为使用autoCreateTables: false
,初始化程序将抛出一条错误,指出UserProfile表不存在。
在所有示例和教程中,我读过这个只是开箱即用,但我不能让它工作。
可能有一个简单的解决方案,但我没有看到它,我会感激这里的任何帮助。
答案 0 :(得分:0)
问题的答案是连接字符串不包含“初始目录”。