2012-02-18 25 views
1

我有一個名爲'Account'的模型,其外鍵'UserId'映射到aspnet_users表。Map ASP Membership用戶和實體框架

帳戶模型還具有導航屬性「創建者」,創建者模型包含UserId,用戶名爲&電子郵件。

將aspnet_users中的值映射到Creator模型的最佳方式是什麼?

我非常希望能夠訪問此類似:@ Model.Creator.Username

我不是想操縱會員制度,我有一個處理一個服務。我只是想將這個對象映射爲只讀目的。

+0

請讓我知道你是否想出了一個辦法。 – user1027620 2012-08-30 07:14:51

回答

0

您可以創建一個未包含在上下文中的模型。

public class AccountContext : DbContext 
{ 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Ignore<Creator>(); //Ignore map 
    } 

    public void FillCreatorToAccount(Account account) 
    { 
     var creator = Database.SqlQuery<Creator>("select UserId,UserName,Email from aspnet_users where [email protected]", account.UserId).SingleOrDefault(); 
     account.Creator = creator; 
    } 
} 

public class Account 
{ 
    public Guid UserId { get; set; } 
    public Creator Creator { get; set; } 
} 

public class Creator 
{ 
    public Guid UserId { get; set; } 
    public string UserName { get; set; } 
    public string Email { get; set; } 
}