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