【发布时间】:2011-08-26 01:14:32
【问题描述】:
我有一个 IQueryable<SomePOCO>(一个 LINQ-Entities 查询,如果这很重要的话):
public class SomePOCO
{
public string ParentName { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}
我正在尝试投影到一个具有2个属性的对象(匿名类型最好,因为我只需要方法范围):
public string ParentName { get; set; }
public ICollection<SimplePoco> { get; set;
SimplePOCO如下:
public class SimplePOCO
{
public string Name { get; set; }
public string Url { get; set; }
}
我这样做的原因是,我检索的所有“SomePOCO”都具有相同的 ParentName,所以我只想要一次,而不是通过电线传递相同的值 N 次并执行.First().
希望这是有道理的。
最终结果是我应该能够做到这一点:
var parentName = result.ParentName; // string
var pocos = result.SimplePOCOs; // ICollection<SimplePOCO>
我想我要么需要某种聚合,比如 GroupBy 或 SelectMany。
有什么想法吗?
【问题讨论】:
-
有趣的是,GroupBy 用于从标志结构投影到层次结构 - SelectMany 会将嵌套结构投影到平面结构。
标签: c# linq .net-4.0 linq-to-entities projection