我使用ASP.NET Identity 2.2.0与ASP.NET MVC 5.2.3和Entity Framework 6.1.2.
我使用带有Code First的ASP.NET Identity将一个新属性及其相应的表添加到我的数据库中,如下所示:
public class ApplicationUser { [ForeignKey("UserTypeId")] public UserType Type { get; set;} public int UserTypeId { get; set;} } public class UserType { [Key] public int Id { get; set;} public string Name { get; set; } }
现在,从某些动作开始,当我打电话时:
var user = UserManager.FindByNameAsync(userName);
它确实为用户提供了正确的UserTypeId,因为它是一个原语,但它不会获得ApplicationUser类的UserType属性.
如果我没有使用这种抽象,我会调用LoadProperty< T>或实体框架中的Include方法,以在ApplicationUser类中包含名为Type(类型为UserType)的导航属性或关系.
如何使用ASP.NET Identity的UserManager执行此操作?我怀疑唯一的方法是在我的自定义UserManager派生类中重写此方法并自己执行此操作?