2012-02-18 5 views
1

aspnet_usersテーブルにマップする外部キー 'UserId'を持つ 'Account'というモデルがあります。マップASPメンバーシップユーザーとエンティティフレームワーク

アカウントモデルには、ナビゲーションプロパティ 'Creator'としてCreatorモデルにUserId、Username & Emailが含まれています。

aspnet_usersからCreatorモデルへの値をマップする最も良い方法は何ですか?

私は、理想的には、このようにアクセスできるようにしたいと思います:Model.Creator.Username

@私は会員制を操作しようとしていないよ、私はそれを処理するサービスを持っています。私は理想的にはこのオブジェクトを読み取り専用の目的でマップしたいと思います。

+0

あなたがそれを行う方法を見つけた場合は教えてください。 – user1027620

答えて

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; } 
} 
関連する問題