0

Automapper Entity -> ViewModel マップ定義をコントローラーの 1 つから MVC アプリのOnApplicationStarted()メソッドに移動しようとしています。それをコピーすると、エンティティの EntityCollection プロパティがそのToArray()拡張メソッドにアクセスできなくなります。コンパイルしようとすると、署名に一致するメソッドまたは拡張メソッドがないというエラーが表示されます。

コード:

    protected override void OnApplicationStarted()
    {
        // some Ninject setup code

        Mapper.CreateMap<Game, AdminGameViewModel>()
            .BeforeMap((s, d) =>
            {
                int platCount = s.Platforms.Count;
                var plats = s.Platforms.ToArray(); // <-- line in question
                d.PlatformIDs = new int[platCount];

                for (int i = 0; i < platCount; ++i)
                {
                    d.PlatformIDs[i] = plats[i].ID;
                }
            })
            .ForMember(dest => dest.Pros, opt => opt.MapFrom(src => src.Pros.Split(new char[] { '|' })))
            .ForMember(dest => dest.Cons, opt => opt.MapFrom(src => src.Cons.Split(new char[] { '|' })))
            .ForMember(dest => dest.PlatformIDs, opt => opt.Ignore());
    }

繰り返しますが、このコードはコントローラーから直接コピーして貼り付けたものであり、コンパイルして正常に実行されます。IEnumerable にキャストしようとしましたが、メソッドにもアクセスできません。

4

1 に答える 1

1

以下を使用して追加します。

using System.Data.Linq;
于 2012-08-01T01:48:57.127 に答える