2

当我启动一个新的 ASP.NET MVC 4 Web 应用程序项目时,我希望它默认使用 SQL Server。默认情况下,当您运行此项目时,它会创建一个 LocalDb 实例并在其中创建以下表:

  • 网页_会员
  • 网页_OAuthMembership
  • 网页_角色
  • 网页_UsersInRoles
  • 用户资料

我已经能够使用代码优先迁移将 UserProfile 表放入 SQL 服务器数据库。但是,我无法使用其他 4 个表来完成此操作。

显然,我的目标是从单个 SQL Server 数据库开始,并将应用程序的所有表都包含在单个数据库中。

4

2 回答 2

2

打开 InitializeSimpleMembershipAttribute.cs 文件,这是 WebSecurity 数据库初始化的位置。您需要使用正确的 connectionStringName 对其进行修改。例子:

改变

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

WebSecurity.InitializeDatabaseConnection("MyRealDBConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

如果您想复制 Web 安全表的结构以与 Code First 一起使用,有一篇文章....我目前找不到...给我一些。

好吧,我找不到它——但老实说——这很痛苦。最简单的方法,因为您已经生成了 DB,可能是使用 Code First 逆向工程工具,如Entity Framework Power Tools。这将为您完成大部分工作。然后只需将类添加到您的 DbContext、创建迁移并更新您的真实数据库。

此外 - 您可能需要进行比这更多的修改 - 取决于您的上下文名称等。

于 2013-07-04T05:11:33.033 回答
0

如果您的目标是仅在现有数据库中创建这些表,则应执行 2 个步骤。

首先,将db初始化的连接字符串更改为@Jack所说的。

其次,在您的 DbContext 中,像这样更改构造函数:

public class MyDbContext : DbContext
{
    publicMytDbContext()
        : base("MyRealDBConnection")
    {

    }

    // ...
}
于 2013-07-22T02:11:45.763 回答