2014-05-17 44 views
0

我是一個asp.net的新手,並試圖找出一個小問題,無法通過。MVC身份用戶配置文件擴展和訪問屬性和方法

我想要的是訪問額外的用戶配置文件的詳細信息,並顯示在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繼承和其下的型號

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; } 
} 
+1

請通過http://stackoverflow.com/questions/7392022/razor-proxy-type -error-system-data-entity-dynamicproxies可能是由於你創建新的對象爲新的UserStore (新的MyDbContext()) – Janty

+0

非常感謝,刪除了mydbcontext和我的用戶,並使用ApplicationUser和IdentityDBContext,它的工作。 – user3647220

+0

public class ApplicationUser:IdentityUser { public virtual UserInfo UserInfo {get;組; }} 公共類ApplicationDbContext:IdentityDbContext { 公共ApplicationDbContext() :基部( 「DefaultConnection」) { Database.SetInitializer(新DropCreateDatabaseIfModelChanges ()); } public System.Data.Entity.DbSet UserInfoes {get;組; } } – user3647220

回答

0

請嘗試

var manager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new MyDbContext()) 
var currentUser = manager.FindById(User.Identity.GetUserId()); 
相關問題