如果您使用过 ASP.NET MVC 4,您会注意到 Internet 应用程序的默认设置是使用 SimpleMembership 提供程序,这一切都很好,并且工作正常。
问题来自默认数据库生成,它们有一个 POCO 用于UserProfile
定义如下:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
..然后像这样生成:
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
这工作正常,数据库生成得很好并且没有问题。但是,如果我要像这样更改 POCO 并删除数据库:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string EmailAddress { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Country { get; set; }
public string CompanyName { get; set; }
}
仅生成前 2 列,UserId
并且EmailAddress
. 它在代码方面工作得很好(谈论登录/注册),但显然我的其他用户数据都没有被存储。
我在这里错过了什么吗?当然,它应该基于整个UserProfile
对象生成数据库。