【发布时间】:2010-09-05 22:08:00
【问题描述】:
我正在尝试解决与此处描述的问题类似的问题
Initializing strongly typed objects in LINQ to Entities
仅来自完全相反的方向。我的存储库中有许多函数,所有这些函数都返回相同形状的数据。问题是我的投影代码:
select new pocoClass
{
// complex projection that is several pages long includes grabbing a graph of data
}
目前它存在于存储库中的每个查询。我曾尝试将它移到对象初始化程序中,但这让我感到可怕的“LINQ to Entities 仅支持无参数构造函数和初始化程序”。问题。
我确实尝试过分成两个查询
var candidates = (from thing in _entities.whatever
where (complex.stuff==true)
select thing);
var final = (from thing in candidates.AsEnumerable()
let x = thing.ITEMS.Where(blah=>blah.blah==param)
let y = x.OTHERITEMS.FirstOrDefault()
select new pocoClass(thing,x,y);
但这里的 final 始终为 null,并且永远不会调用 new pocoClass 中的代码。我在上面包含了 let x & y,因为它们在每次使用投影时总是不同的。
那么,我是否必须回到我的投影的多个副本,还是有其他方法可以解决这个问题?
【问题讨论】:
标签: c# linq entity-framework entity-framework-4