我刚刚在我的项目中启用了迁移并添加了一些字段UserProfile
:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Description { get; set;}
public DateTime? CreatedOn { get; set; }
public DateTime? LastAccess { get; set; }
}
我Add-migration AddFieldsForUserProfile
和它创造了:
...
public override void Up()
{
AddColumn("dbo.UserProfile", "Email", c => c.String());
AddColumn("dbo.UserProfile", "Description", c => c.String());
AddColumn("dbo.UserProfile", "CreatedOn", c => c.DateTime());
AddColumn("dbo.UserProfile", "LastAccess", c => c.DateTime());
}
...
Update-database -verbose
产生了这个输出:
Target database is: 'Hifi.Models.HifiContext' (DataSource: (localdb)\v11.0, Provider: System.Data.SqlClient, Origin: Convention).
Applying code-based migrations: [201303311011083_AddFieldsForUserProfile].
Applying code-based migration: 201303311011083_AddFieldsForUserProfile.
ALTER TABLE [dbo].[UserProfile] ADD [Email] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [Description] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [CreatedOn] [datetime]
ALTER TABLE [dbo].[UserProfile] ADD [LastAccess] [datetime]
[Inserting migration history record]
Running Seed method.
显然一切顺利,但是在收到列 CreatedOn 不存在的错误后,我使用服务器资源管理器查看了数据库,实际上,我的UserProfile
表中缺少所有 4 个列。我做错什么了?
编辑
我发现了我的错误。不知何故,我有两个不同的mdf
文件aspnet-Hifi-20130330054424.mdf
,Hifi.Models.HifiContext.mdf
它们的文件大小相同,我认为两者都是必要的。我的服务器资源管理器正在使用aspnetxx.mdf
并且数据库更改为HifiContext.mdf
. 真丢人。
在相关说明中,我无法正确显示所有注册用户的列表。尽管我可以完美登录,但它始终是空的。不知何故登录aspnetxx.mdf
被查询,但我的MemberListController
查询HifiContext.mdf
。更改连接字符串后,我最初没有注册用户,添加了新用户HifiContext.mdf
并且列表正常工作。这怎么发生的?