Как манипулировать хранимыми процедурами, возвращающими несколько наборов результатов, используя Entity Framework 6? - PullRequest
0 голосов
/ 01 мая 2018

Мы хотим перенести существующую кодовую базу приложения из ADO.NET в Entity Framework для доступа к данным. Мы должны использовать только устаревшие хранимые процедуры, а база данных управляется другой командой.

В настоящее время мы сталкиваемся с проблемой работы с устаревшими SP, возвращающими несколько наборов результатов, чтобы преобразовать все наборы результатов в нужные типы. Например, скажем, хранимая процедура возвращает набор пациентов и врачей, а затем мы хотим преобразовать два набора результатов в List<Patient> и List<Physician>.

В некоторых случаях SP возвращают 4-5 наборов результатов, и нам нужны только конкретные наборы результатов, например, набор результатов 2 или 3 или оба из 4 и 5.

По умолчанию, если мы используем подход Database First, метаданные создают только сложный тип для результата First (в этом примере это создаст сложный тип для набора результатов Patients). Существует также ObjectContext API, который использует интерфейс IObjectContextAdapter (https://forums.asp.net/t/2013630.aspx?EF+6+code+first+getting+multiple+resultsets+from+stroed+procedure+)

Также рассмотрел способы написания кода-обертки с помощью следующих ссылок и должен сказать, что это действительно помогает https://www.khalidabuhakmeh.com/entity-framework-6-multiple-result-sets-with-stored-procedures

https://www.trycatchfail.com/2015/06/03/returning-multiple-result-sets-from-a-stored-procedure-using-entity-framework-6/

Каков наилучший подход к решению этих сценариев? Должны ли мы продолжать изучать Entity Framework? Существуют ли API или пакеты Nuget, которые мы могли бы использовать?

...