保存用户配置文件信息_userManager.UpdateAsync(user);

时间:2015-08-16 09:18:48

标签: asp.net .net asp.net-mvc asp.net-identity asp.net-core-mvc

我正在尝试使用Microsoft.AspNet.Identity.EntityFramework“:”3.0.0-beta6将一些信息写入当前的ApplicationUser“配置文件”,但该值为null并且我没有得到任何例外运行以下代码。

public class TestController : Controller
{
    private readonly UserManager<ApplicationUser> _userManager;

    public TestController(UserManager<ApplicationUser> userManager)
    {
        _userManager = userManager;
    }

    // GET: /<controller>/
    public async Task<ActionResult> Index()
    {
        var userObject = await _userManager.FindByIdAsync(Context.User.GetUserId());

        //This value is null even the second time I hit this breakpoint. 
        var shouldHaveAValue = userObject.MyStringList;
        userObject.MyStringList = new List<string>();
        userObject.MyStringList.Add("testId");
        await _userManager.UpdateAsync(userObject);

        return View();
     }
}

我可能在这里完全错了,但这是我认为应该在看到

时完成的方式
// Add profile data for application users by adding properties to the ApplicationUser class
public class ApplicationUser : IdentityUser
{
    public virtual List<string> MyStringList { get; set; }
}

该示例在ASP.NET5 Web模板中实现。

//编辑: 这可能是我添加专栏的方式吗?我这样做是因为我在运行迁移命令时遇到错误,这些命令在ef文档页面上没有准备好。(dnx.ef apply)

migration.CreateTable(
                name: "AspNetUsers",
                columns: table => new
                {
                    Id = table.Column(type: "nvarchar(450)", nullable: false),
                    AccessFailedCount = table.Column(type: "int", nullable: false),
                    ConcurrencyStamp = table.Column(type: "nvarchar(max)", nullable: true),
                    Email = table.Column(type: "nvarchar(max)", nullable: true),
                    EmailConfirmed = table.Column(type: "bit", nullable: false),
                    LockoutEnabled = table.Column(type: "bit", nullable: false),
                    LockoutEnd = table.Column(type: "datetimeoffset", nullable: true),
                    NormalizedEmail = table.Column(type: "nvarchar(max)", nullable: true),
                    NormalizedUserName = table.Column(type: "nvarchar(max)", nullable: true),
                    PasswordHash = table.Column(type: "nvarchar(max)", nullable: true),
                    PhoneNumber = table.Column(type: "nvarchar(max)", nullable: true),
                    PhoneNumberConfirmed = table.Column(type: "bit", nullable: false),
                    SecurityStamp = table.Column(type: "nvarchar(max)", nullable: true),
                    TwoFactorEnabled = table.Column(type: "bit", nullable: false),
                    UserName = table.Column(type: "nvarchar(max)", nullable: true),
                    MyStringList = table.Column(type: "nvarchar(max)", nullable: true)
                },

0 个答案:

没有答案