C# 未在远程服务器上创建SimpleMembership表(本地工作正常)EF MVC4

C# 未在远程服务器上创建SimpleMembership表(本地工作正常)EF MVC4,c#,entity-framework,asp.net-mvc-4,entity-framework-5,simplemembership,C#,Entity Framework,Asp.net Mvc 4,Entity Framework 5,Simplemembership,我试图扩展simplemembership功能,但在创建表和使用更新数据库从种子方法填充表时遇到了问题。 地方指挥部 update-database 创建所有表格并正确填写,包括网页、会员资格等。 当我尝试使用以下命令在服务器上更新时: update-database -ConnectionStringName "remote" -Verbose 只有我自己设计的表格正在创建和填充 以下是我从服务器获得的信息: PM> update-database -ConnectionS

我试图扩展simplemembership功能,但在创建表和使用更新数据库从种子方法填充表时遇到了问题。 地方指挥部

 update-database
创建所有表格并正确填写,包括网页、会员资格等。 当我尝试使用以下命令在服务器上更新时:

  update-database -ConnectionStringName "remote" -Verbose
只有我自己设计的表格正在创建和填充

以下是我从服务器获得的信息:

  PM> update-database -ConnectionStringName "remote" -Verbose
Using StartUp project 'Phones'.
Using NuGet project 'Phones'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'databasename' (DataSource: tcp:server,port, Provider: System.Data.SqlClient, Origin: Explicit).
No pending code-based migrations.
Applying automatic migration: 201407232047491_AutomaticMigration.
CREATE TABLE [dbo].[UserProfile] (
    [UserId] [int] NOT NULL IDENTITY,
    [UserName] [nvarchar](max),
    [FirstName] [nvarchar](max),
    [LastName] [nvarchar](max),
    [Email] [nvarchar](max),
    [Balance] [float] NOT NULL,
    [Enabled] [bit] NOT NULL,
    CONSTRAINT [PK_dbo.UserProfile] PRIMARY KEY ([UserId])
)
CREATE TABLE [dbo].[Orders] (
    [OrderId] [int] NOT NULL IDENTITY,
    [Name] [nvarchar](max),
    [IMEI] [nvarchar](max),
    [UnlockCode] [nvarchar](max),
    [UserProfile_UserId] [int],
    [Phone_PhoneId] [int],
    CONSTRAINT [PK_dbo.Orders] PRIMARY KEY ([OrderId])
)
CREATE TABLE [dbo].[Phones] (
    [PhoneId] [int] NOT NULL IDENTITY,
    [Manufacturer] [nvarchar](max),
    [Model] [nvarchar](max),
    [UnlockPrice] [float] NOT NULL,
    CONSTRAINT [PK_dbo.Phones] PRIMARY KEY ([PhoneId])
)
CREATE INDEX [IX_UserProfile_UserId] ON [dbo].[Orders]([UserProfile_UserId])
CREATE INDEX [IX_Phone_PhoneId] ON [dbo].[Orders]([Phone_PhoneId])
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [FK_dbo.Orders_dbo.UserProfile_UserProfile_UserId] FOREIGN KEY ([UserProfile_UserId]) REFERENCES [dbo].[UserProfile] ([UserId])
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [FK_dbo.Orders_dbo.Phones_Phone_PhoneId] FOREIGN KEY ([Phone_PhoneId]) REFERENCES [dbo].[Phones] ([PhoneId])
CREATE TABLE [dbo].[__MigrationHistory] (
    [MigrationId] [nvarchar](255) NOT NULL,
    [Model] [varbinary](max) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
    CONSTRAINT [PK_dbo.__MigrationHistory] PRIMARY KEY ([MigrationId])
)
BEGIN TRY
    EXEC sp_MS_marksystemobject 'dbo.__MigrationHistory'
END TRY
BEGIN CATCH
END CATCH
[Inserting migration history record]
Running Seed method.
以及来自本地:

PM> update-database -Verbose
Using StartUp project 'Phones'.
Using NuGet project 'Phones'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'phones' (DataSource: localhost\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Configuration).
No pending code-based migrations.
Applying automatic migration: 201407232046599_AutomaticMigration.
CREATE TABLE [dbo].[UserProfile] (
    [UserId] [int] NOT NULL IDENTITY,
    [UserName] [nvarchar](max),
    [FirstName] [nvarchar](max),
    [LastName] [nvarchar](max),
    [Email] [nvarchar](max),
    [Balance] [float] NOT NULL,
    [Enabled] [bit] NOT NULL,
    CONSTRAINT [PK_dbo.UserProfile] PRIMARY KEY ([UserId])
)
CREATE TABLE [dbo].[Orders] (
    [OrderId] [int] NOT NULL IDENTITY,
    [Name] [nvarchar](max),
    [IMEI] [nvarchar](max),
    [UnlockCode] [nvarchar](max),
    [UserProfile_UserId] [int],
    [Phone_PhoneId] [int],
    CONSTRAINT [PK_dbo.Orders] PRIMARY KEY ([OrderId])
)
CREATE TABLE [dbo].[Phones] (
    [PhoneId] [int] NOT NULL IDENTITY,
    [Manufacturer] [nvarchar](max),
    [Model] [nvarchar](max),
    [UnlockPrice] [float] NOT NULL,
    CONSTRAINT [PK_dbo.Phones] PRIMARY KEY ([PhoneId])
)
CREATE INDEX [IX_UserProfile_UserId] ON [dbo].[Orders]([UserProfile_UserId])
CREATE INDEX [IX_Phone_PhoneId] ON [dbo].[Orders]([Phone_PhoneId])
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [FK_dbo.Orders_dbo.UserProfile_UserProfile_UserId] FOREIGN KEY ([UserProfile_UserId]) REFERENCES [dbo].[UserProfile] ([UserId])
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [FK_dbo.Orders_dbo.Phones_Phone_PhoneId] FOREIGN KEY ([Phone_PhoneId]) REFERENCES [dbo].[Phones] ([PhoneId])
CREATE TABLE [dbo].[__MigrationHistory] (
    [MigrationId] [nvarchar](255) NOT NULL,
    [Model] [varbinary](max) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
    CONSTRAINT [PK_dbo.__MigrationHistory] PRIMARY KEY ([MigrationId])
)
BEGIN TRY
    EXEC sp_MS_marksystemobject 'dbo.__MigrationHistory'
END TRY
BEGIN CATCH
END CATCH
[Inserting migration history record]
Running Seed method.
我的种子法课堂:

internal sealed class Configuration : DbMigrationsConfiguration<Phones.Models.UsersContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;

        }

        protected override void Seed(Phones.Models.UsersContext context)
        {
            if (!WebMatrix.WebData.WebSecurity.Initialized)
            {
                WebSecurity.InitializeDatabaseConnection(
                   "DefaultConnection",
                   "UserProfile",
                   "UserId",
                   "UserName", autoCreateTables: true);
            }
            if (!Roles.RoleExists("Administrator"))
                Roles.CreateRole("Administrator");
            if (!Roles.RoleExists("User"))
                Roles.CreateRole("User");

            if (!WebSecurity.UserExists("Admin"))
                WebSecurity.CreateUserAndAccount(
                    "Admin",
                    "pass",
                    new { FirstName = "testname", LastName = "testsurname", Email = "email@email.com", Balance = 0, Enabled = true });

            if (!Roles.GetRolesForUser("Admin").Contains("Administrator"))
                Roles.AddUsersToRoles(new[] { "Admin" }, new[] { "Administrator" });
        }
    }
这是我的UsersContext类:

public class UsersContext : DbContext
    {
        public UsersContext()
            : base("DefaultConnection")
        {
        }

        public DbSet<UserProfile> UserProfiles { get; set; }
        public DbSet<Order> Orders { get; set; }

        public DbSet<Phone> Phones { get; set; }

    }
任何帮助都将不胜感激。 顺致敬意,
Martin

您是否尝试在远程服务器上使用visual studio命令提示符

如果在“开始”中打开visual studio命令提示符,请键入它应该出现的visual studio命令提示符

然后在命令提示下键入:

Aspnet_regsql.exe
这将打开一个旨在为asp.net网站创建成员模式的程序。您也可以从此应用程序远程连接到数据库

当应用程序打开时:

单击为应用程序服务配置SQL Server 点击“下一步”,系统将提示您是否要远程连接。 输入您的凭证,然后点击下一步。您将获得连接到的数据库及其所在服务器的设置摘要。检查这一切是否正常,然后点击下一步。 按照说明操作,它将安装用于成员角色等的必要ASP_uu数据库。
以这种方式使用updatedatabase命令实际上是开发过程中的捷径,而不是用于为测试或生产设置远程服务器。对于远程服务器,请将script参数与update database命令一起使用,以创建或更新现有数据库的sql脚本,然后在该服务器上运行该脚本