2016-10-28 4 views
2

При использовании базы данных EF6 Сначала и при попытке выполнить хранимую процедуру автоматически созданный контекст добавляет требуемый метод, но устанавливает возвращаемый тип как ObjectResult. Например, следующее определение:Первая хранимая процедура базы данных EF 6

public virtual ObjectResult<USP_GetItemDetails_Result> USP_GetItemDetails(int? itemNbr, int? siteNbr) 

имеет тип возврата:

return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<USP_GetItemDetails_Result>("USP_GetItemDetails", itemNbr, siteNbr); 

есть в любом случае, чтобы материализовать этот результат, как только на конкретный класс, вместо того, чтобы отправить результат в ObjectResult? Следующий слой в моем стеке не знает о Entity Framework.

+0

Кроме того, если это необходимо, возвращаемый тип хранимой процедуры является сложным типом, который не соответствует ни одному из сущностей БД (это объединение некоторой локальной информации и данных с связанного сервера). – Sykomaniac

+0

Почему не отображать результат себя в новый класс? –

+0

Я мог бы это сделать, но потом я буду отображать его позже, когда я верну результаты в качестве dto через веб-API. – Sykomaniac

ответ

1

Выключается ObjectResult под капотом IEnumerable. Простой toList означает, что я могу вернуть IEnumerable на следующий уровень.

Смежные вопросы