2012-04-25 17 views
1

マップへのマッピング匿名のリストにAutoMapperを使用してTのリスト?例えばマッピングの使用Automapper

class Test{ 
    public string a1{get;set]} 
    public string a2{get;set;} 
} 

//....Entity Framework 4.3.1 
var t=from z in db select {z.a1,z.a2}; 

var tmp=AutoMapper.Mapper.DynamicMap<List<Test>>(t); 

しかし、tmpは常にそれを修正するためにどのように空の

のですか?

+1

ダイナミックマッピングなしで動作しますか? Mapper.CreateMap ();のようなものです。 var tmp = Mapper.Map 、List >(t)。 – daryal

+0

var tは匿名クラスのIQueriableであり、このフォーム(db.test)で使用することはできません – user1356462

答えて

1

あなたが最初のクエリ

var tmp=AutoMapper.Mapper.DynamicMap<List<Test>>(t.ToList()); 
+0

テスト済みですが動作しません! – user1356462

+0

おそらく、おそらくt.ToList()を呼び出しても期待される項目数を返しますか? – bhiku

+0

もちろん、動作しません... – user1356462

0

を実行するためにt.ToList()を呼び出す必要がありますどのようにあなたが

var t=from z in db select new Test 
          { 
          a1 = z.a1, 
          a2 = z.a2 
          } 

はEDIT はダイナミック型へのマッピングを許可するように変更について、次のことができexisting post

+0

ありがとう。このモードではLINQ AutoMapperは必要ありませんが、LINQクエリがTestクラスよりも余分なフィールドを返す場合は動作しません。他の解決策はありますか? – user1356462

+0

@ user1356462:他の解決策を見つけましたか? – Turbot

+0

いいえ! AutoMapperで報告されているバグです。私はそれの代わりにラムダ式を使った。 – user1356462

関連する問題