使用UserIds和ProfileIds

时间:2017-09-16 15:26:31

标签: c# asp.net-mvc

在我的应用程序中,用户可以拥有一个个人资料。

用户通过输入电子邮件和密码来创建帐户。然后将此信息存储在用户表中。

用户创建帐户后,他们可以创建一个配置文件: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?

这里有最佳实践吗?你们有什么建议吗?

2 个答案:

答案 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; }
    }