EntityCollection <t> ToArray()扩展方法在Global.asax.cs </t>中不起作用

时间:2012-07-31 02:00:23

标签: c#-4.0 asp.net-mvc-2 entity-framework-4 automapper

我正在尝试移动我的Automapper实体 - &gt;从我的一个控制器到我的MVC应用程序的OnApplicationStarted()方法的ViewModel映射定义。当我复制它时,我的Entity的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,但是这也不能让我访问该方法。

1 个答案:

答案 0 :(得分:1)

使用。

添加以下内容
using System.Data.Linq;