gpt4 book ai didi

c# - UserManager.CreateAsync 不会在 ApplicationUser 中保存添加的属性

转载 作者:行者123 更新时间:2023-11-30 16:12:03 27 4
gpt4 key购买 nike

我已经用额外的地址列修改了 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);

如果我单步执行代码,我会看到用户包含新属性。但是,当它保存时,这些字段在数据库中是空的。是否有我遗漏的内容或代码优先迁移是否执行了未涵盖的步骤?

最佳答案

我当然不是 ASP.NET Identity 专家,仍在尝试自己掌握基础知识,但我想到了两个建议。

首先,我看到您正在将字段 添加到您的ApplicationUser 类,而不是属性。这可能是问题所在。例如,尝试更改

public string Email;

进入

public string Email { get; set; }

其次,您需要运行迁移以便将这些列添加到您的数据库中。虽然您似乎确实说过您的数据库中已经有这些列,但我认为这一步不会增加任何内容。 (既然你说你是从数据库优先的方法开始的。我只是为了完整起见才提到这一点。)

祝你好运!

关于c# - UserManager.CreateAsync 不会在 ApplicationUser 中保存添加的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com