Linq错误 - "NotSupportedException:用于查询运算符的不支持的重载'选择'"

Ran*_*der 8 linq

我有以下Linq查询:

var tmp = 
    from container in Container
    join containerType in ContainerType on container.ContainerType equals containerType
    where containerType.ContainerTypeID == 2
    select new { ContainerID = container.ContainerID, TypeID = container.ContainerTypeID};

var results = tmp.Select((row, index) => new { row.ContainerID, row.TypeID, ContainerIndex = index })
Run Code Online (Sandbox Code Playgroud)

这样,这很好.如果我添加以下内容,那么我可以在LinqPad中看到结果,我收到此消息标题中描述的错误:

results.Dump();
Run Code Online (Sandbox Code Playgroud)

这个错误不是LinqPad错误,它来自Linq,我不明白这是什么意思.

谢谢.

Jon*_*eet 17

好的,我还没有意识到Container是一个LINQ to SQL数据源.基本上它没有将第二个投影转换为SQL.

所以,你想要做的.NET这一点位,而不是-你可以强制它使用Enumerable.SelectAsEnumerable:

var results = tmp.AsEnumerable()
                 .Select((row, index) => new { row.ContainerID, row.TypeID,
                                               ContainerIndex = index });
Run Code Online (Sandbox Code Playgroud)