2012-02-18 62 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; } 
}