2012-03-14 4 views
4

私はEntityFrameworkオブジェクトのコレクションをビューモデルのコレクションでマップしようとしています。値インジェクタは、コレクションのプロパティをマップしていますか?

public class Channel 
{ 
    public Guid Id { get; set; } 

    public string Name { get; set; } 

    public IEnumerable<Report> Reports { get; set; } 
} 

public class ChannelListViewModel 
{ 
    public Guid Id { get; set; } 

    public string Name { get; set; } 

    public IEnumerable<Report> Reports { get; set; } 
} 

以下のコードを使用すると、[レポート]リストがマップされていません。私は間違って何をしていますか?

IList<ChannelListViewModel> viewModelList = channelList.Select(x => new ChannelListViewModel().InjectFrom(x)).Cast<ChannelListViewModel>().ToList(); 
+0

これは実際に動作するはずです。 Reportsのプロパティの名前は 'Reports'と同じ名前で、' IEnumerable 'と入力してください。おそらくあなたは実際のビューモデルを見せてくれませんでした – Omu

答えて

3

いいえ、デフォルトではカスタム注入器を使用する必要はありません。これが、私がバリューインジェクタを試した後にオートマッピに戻った理由です。 How to map lists with ValueInjector

+0

お返事ありがとうございます。だからそれはコレクションを処理しないし、リンクされたメソッドは動作するようですが、コレクションのプロパティはどうでしょうか? – NullReference

+0

コレクションもプロパティで、反対側に同じ名前とタイプのプロパティが存在する場合は、値がコピーされます – Omu

+1

ああ...私のようにもこのためのautomapperに戻る同じ理由。 –

1

があることないautomapperシミュレーションがあります:あなたはそれをダウンロードし、コレクションは自動的に

マッピングされているかを確認することができます

http://valueinjecter.codeplex.com/releases/view/60311#DownloadId=318259

はこちらの記事です:http://valueinjecter.codeplex.com/wikipage?title=Automapper%20Simulation&referringTitle=Home

あなたが見ることができますユニットテストがあります

+1

AutoMapperのシミュレーションがうまく動作していないようです。複数のコレクションを持つオブジェクトに誤ってコレクションデータをマップします。 – Mun

関連する問題