Я пытаюсь решить проблему, аналогичную описанной здесь
Инициализация строго типизированных объектов в 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, и код в новом pocoClass никогда не вызывается. Я включил let x & y в вышеприведенное, потому что они всегда меняются в зависимости от каждого использования проекции.
Итак, мне нужно вернуться к нескольким копиям моей проекции или есть другой выход из этого?