我是一个asp.net新手,试图解决一个小问题,但无法通过。
我正在尝试的是访问额外的用户配置文件详细信息,并在mylogin部分页面显示第一个名字,并给出一个例外,任何帮助,以摆脱一些真的很感激。
@
{var manager = new UserManager<MyUser>(new UserStore<MyUser>(new MyDbContext ()));
**var currentUser = manager.FindById(User.Identity.GetUserId());**
var myname = currentUser.UserInfo.FirstName;
}
类型为'System '的异常。InvalidOperationException'在mscorlib.dll中发生,但未在用户代码中处理
附加信息:从具体化的"System.Data.Entity.DynamicProxies"中指定的强制转换。ApplicationUser_19A2C4C53E8DE616853C0AA38428987A7CBBC56E57FCCF82F04E81B42A687C20'类型到'BNTracker.Models. 'MyUser的类型无效
MyUser已经从IdentityUser继承,它在models
下可用public class MyUser : IdentityUser
{
public virtual UserInfo UserInfo { get; set; }
}
public class UserInfo
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmployeeCode { get; set; }
public string Email { get; set; }
}
public class MyDbContext : IdentityDbContext<MyUser>
{
public MyDbContext()
: base("DefaultConnection")
{
//Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>());
}
public System.Data.Entity.DbSet<UserInfo> UserInfo { get; set; }
}
请尝试
var manager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new MyDbContext ())
var currentUser = manager.FindById(User.Identity.GetUserId());