0

我正在使用 VS2012、SQLExplress、最新的 .net 版本、代码优先实体框架和迁移构建一个简单的 webb 应用程序。我从 VS2012 中的标准 MVC4 模板构建,默认使用新的简单成员资格。

我的问题是我无法让 Websecurity 类使用我创建的数据库。我在 Glabal.asax.cs 中使用此代码:

WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(
"DefaultConnection",
"UserProfile",
"UserId",
"UserName",
autoCreateTables: true);

我也尝试在迁移种子方法中运行此代码段,但结果相同。

我的连接字符串看起来像这样

<add name="DefaultConnection" connectionString="Data Source=localhost\SQLEXPRESS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />

当我使用autoCreateTables: true参数运行初始化程序时,初始化程序会创建一个仅在 VS2012 中可见的新连接,如下所示。

这张图片显示了一个名为 SecurityConnection2 的连接,因为我试图强制 websecurity 使用另一个连接字符串,但行为与使用 DefaultConnection 的行为相同。如您所见,它在这个新连接中创建了所有表,我无法在数据库中的任何位置找到这些表。

如果我改为使用autoCreateTables: false初始化程序,则会抛出一个错误,指出 UserProfile 表不存在。

在我读过的所有示例和教程中,这只是开箱即用,但我无法让它工作。

可能有一个简单的解决方案,但我看不到它,我将不胜感激这里的任何帮助。

4

1 回答 1

0

问题的答案是连接字符串不包含“初始目录”。

于 2013-03-07T13:05:59.603 回答