在我的应用程序中,用户可以拥有一个个人资料。
用户通过输入电子邮件和密码来创建帐户。然后将此信息存储在用户表中。
用户创建帐户后,他们可以创建一个配置文件:Elf-profile,Dwarf-profile和将属于该用户的Human-profile。
这是我的ProfileModel:
public class Profile : IProfile
{
public Guid ProfileId { get; set; }
public Guid UserId { get; set; }
public string ElfName{ get; set; }
public string DwarfName{ get; set; }
public string HumanName{ get; set; }
}
我的问题是:如何在整个应用程序中处理/工作ProfileId?如果我只有用户,每次我需要获取用户的ID时,我都可以致电User.Identity.GetUserId()
。
但是ProfileId怎么样?我应该每次都使用UserId来获取ProfileId吗?每次我想使用个人资料时,我是否应该为ProfileId使用HiddenFor?
这里有最佳实践吗?你们有什么建议吗?
答案 0 :(得分:0)
对于大多数存储的信息,我获得userID
,然后使用var profile = DbContext.Profiles.Single(profile => profile.UserId == userID)
答案 1 :(得分:0)
如果User和UserProfile之间的关系一对一,那么你应该重构你的UserProfile,以便Profile.UserId是主键和Forign键在User表上
public class Profile : IProfile
{
public Guid UserId { get; set; }
public string ElfName{ get; set; }
public string DwarfName{ get; set; }
public string HumanName{ get; set; }
}