В настоящее время у меня есть код Entity Framework, который выглядит следующим образом:
return _context
.MyData
.OrderBy(x => x.Name)
.Select(x => new CustomObject { Name = x.Name, Description = x.Description });
Я хотел бы иметь возможность перенести создание моего CustomObject
кода в отдельную функцию, поэтому что-то вроде этого:
return _context
.MyData
.OrderBy(x => x.Name)
.Select(x => CustomObjectFactory.Create(x));
Но когда я делаю это, я получаю
Linq для сущностей не распознает метод
ошибка. Я понимаю, что могу просто позвонить AsEnumerable()
:
return _context
.MyData
.OrderBy(x => x.Name)
.AsEnumerable()
.Select(x => CustomObjectFactory.Create(x));
Но я бы хотел знать, как это сделать без дополнительного вызова AsEnumerable()
. Я почти уверен, что это некое сложное дерево выражений.
Для получения бонусных баллов мне также было бы интересно узнать, как это сделать:
return _context
.MyData
.OrderBy(x => x.Name)
.CreateCustomObject()