2010-11-17 2 views
0

У меня есть proc, который возвращает два поля как пользовательский класс, сгенерированный каркасом EF (сопоставленный класс для пользовательского результата). Могу ли я присоединиться к результатам proc с помощью запроса ADO.NET EF LINQ? Я получаю ошибки, которые не предполагают, но я не уверен.EF 4 Сохраненная процедура Смешанная с LINQ

Спасибо.

+2

Образец кода значительно улучшит ваши шансы получить полезный ответ. –

ответ

1

Нет, объединение результатов из хранимой процедуры в объекте Linq для объектов невозможно. Это также очень сложно в SQL прямо - я могу представить некоторый подход с OpenQuery в TSQL, но это ужасное решение.

Если вам действительно нужно присоединиться к результату вашей хранимой процедуры с помощью некоторого запроса Linq to entities, вы должны выполнить хранимую процедуру и запрос отдельно и присоединиться к ним с помощью Linq для объектов. Но имейте в виду, что это решение будет передавать полные результаты из обеих операций на ваш сервер приложений, а объединение будет выполняться .NET в памяти.

Другое решение - переписать хранимую процедуру в UDF (пользовательская функция в TSQL). В этом случае вы не сможете использовать отображение результата функции в сущности, но вы сможете присоединиться к результату функции с другим запросом в EQL.

Лучшим решением в этом случае, вероятно, будет новая хранимая процедура, которая выполняет необходимую операцию соединения.

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