gpt4 book ai didi

c# - 子类未保存在 ASP.Net MVC 身份模型中的数据库中

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:31 25 4
gpt4 key购买 nike

我是 ASP.Net Identity 模型的新手,并尝试创建我的 ApplicationUser 类的子类。我想将它们保存在我数据库中的不同表中:

[Table("Persons")]
public class Person : ApplicationUser{...}

我在我的种子方法中以这种方式创建人员类:

 Person testUser = new Person();
UserManager.Create(testUser);

但这只会在我的数据库的 ApplicationUser 表中创建条目。创建它们后,我尝试使用用户 ID 获取个人数据:

var userID = User.Identity.GetUserId()

using (ApplicationDbContext context = new ApplicationDbContext())
{
var result = context.PersonModels.FirstOrDefault(x => x.Id == userID);
}

但是 table 总是空的。有没有办法让这个工作?

最佳答案

我怀疑 UserManager.Create() 需要一个 ApplicationUser 对象而不是一个 Person,因此,只是把它当作一个应用程序用户

您应该只将特定于应用程序的属性添加到 ApplicationUser 类,而不是从它继承。描述该过程的教程是 here

简而言之,您只需在/Models/identity.cs 文件中的此类定义中添加属性:

public class ApplicationUser : IdentityUser
{

然后进行必要的迁移 brouhaha。

事实上,我的 MVC 版本包含一条评论,其中包含指向 Identity.cs YMMV 中那个教程的链接 :-)

关于c# - 子类未保存在 ASP.Net MVC 身份模型中的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27075617/

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