我已使用其他地址列修改了AspNetUsers表,并遵循了除迁移部分之外的步骤here。我用数据库第一种方法开始我的项目
我的身份模型还有其他字段
public class ApplicationUser : IdentityUser
{
public string Email;
public string Address;
public string City;
public string Province;
public string PostalCode;
}
在AccountController中,我像这样构建我的用户:
var user = new ApplicationUser() {
UserName = model.UserName,
Email = model.Email,
Address = model.Address,
City = model.City,
Province = model.Province,
PostalCode = model.PostalCode
};
var result = await UserManager.CreateAsync(user, model.Password);
如果我单步执行代码,我会看到用户包含新属性。但是,当它保存时,这些字段在数据库中是空的。有没有我错过的或代码优先迁移做了一个尚未涵盖的步骤?
答案 0 :(得分:3)
我当然不是ASP.NET身份专家,仍然在尝试自己完成基础知识,但我想到了两个建议。
首先,我发现您要将字段添加到ApplicationUser
类,而不是属性。这可能是问题所在。例如,尝试更改
public string Email;
到
public string Email { get; set; }
其次,您需要运行迁移才能将这些列添加到数据库中。虽然您似乎确实已经说过您已经在数据库中拥有这些列,但我认为此步骤不会添加任何内容。 (因为你说你开始使用数据库优先方法。我只是为了完整性而提到这一点。)
祝你好运!