Map ASP Membership User & Entity Framework - PullRequest
1 голос
/ 18 февраля 2012

У меня есть модель с именем «Account» с внешним ключом «UserId», который отображается в таблицу aspnet_users.

Модель Account также имеет в качестве свойства навигации «Creator», модель Creator содержит UserId, Username & Email.

Каков наилучший способ сопоставить значения из aspnet_users с моделью Creator?

В идеале я хотел бы получить доступ к этому: @ Model.Creator.Username

Я не собираюсь манипулировать системой членства, у меня есть служба, которая обрабатывает это.В идеале я хотел бы отобразить этот объект только для чтения.

1 Ответ

0 голосов
/ 05 марта 2013

Вы можете создать модель, которая не включена в контекст.

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 UserId=@p0", 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; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...