我有以下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 })
原样,这很好用。如果我添加以下内容,那么我可以在LinqPad中看到结果,我收到此消息标题中描述的错误:
results.Dump();
这个错误不是LinqPad错误,它来自Linq,我不明白这是什么意思。
谢谢。
答案 0 :(得分:17)
好的,我还没有意识到Container
是一个LINQ to SQL数据源。基本上它没有将第二个投影转换为SQL。
所以,你想在.NET中做这一点 - 你可以强迫它使用Enumerable.Select
AsEnumerable
:
var results = tmp.AsEnumerable()
.Select((row, index) => new { row.ContainerID, row.TypeID,
ContainerIndex = index });