simplemembership 기능을 확장하려고하는데 테이블을 만들고 update-database를 사용하여 시드 메소드에서 채우는 데 문제가 있습니다. 자신에 의해 설계되었습니다SimpleMembership 테이블이 원격 서버에 생성되지 않음 (로컬 작동) EF MVC4
update-database -ConnectionStringName "remote" -Verbose
만 테이블이되고 있습니다 지역 명령
update-database
내가이 명령을 사용하여 서버에이를 업데이트하려고하면 제대로 등 webpages_Membership 를 포함한 모든 테이블을 생성하고이를 채우기 생성 및 채워집니다.
난 서버에서이 Heres는 무엇을 :
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 protected]", 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