C# 未在远程服务器上创建SimpleMembership表(本地工作正常)EF MVC4
我试图扩展simplemembership功能,但在创建表和使用更新数据库从种子方法填充表时遇到了问题。 地方指挥部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
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脚本,然后在该服务器上运行该脚本