ASP.NET MVC 5 IdentityUser相关实体

本文关键字:实体 IdentityUser NET MVC ASP | 更新日期: 2023-09-27 18:11:07

我有以下的ApplicationUser实现:

public class ApplicationUser : IdentityUser
{
    public virtual Establishment Establishment { get; set; }
}

和建立实施:

public class Establishment
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ApplicationUser> Users { get; set; }
    public virtual ICollection<Menu> Menus { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}

一个机构有许多用户,但一个用户只有一个机构。我想通过当前用户id获得当前建立:

var currentUserEstablishmentId = userManager
    .FindById(User.Identity.GetUserId()).Establishment.ID;
var establishment = db.Establishments
    .Single(e => e.ID == currentUserEstablishmentId);

但是它给了我一个错误。设置属性Establishment of the currentUser为空。

如何获取当前用户的当前建立地址?

谢谢你,问候。

ASP.NET MVC 5 IdentityUser相关实体

您是否尝试过在ApplicationUser上添加establishmentd ?

public class ApplicationUser : IdentityUser
{
    public virtual int EstablishmentID { get; set; }
    public virtual Establishment Establishment { get; set; }
}

那么你的查询变成:

var currentUser = userManager
    .FindById(User.Identity.GetUserId());
var establishment = db.Establishments
    .Single(e => e.ID == currentUser.EstablishmentID);