Обходной путь заключается в том, что вам нужно изменить свой SP, чтобы он всегда возвращал все возможные столбцы, и вы используете заполнители для тех, которые отсутствуют.Например, если ваш SP возвращает col1, col2 и col3 в одном сценарии, а col1, col2, col4 и col5 в другом сценарии, вам необходимо всегда возвращать col1, col2, col3, col4 и col5 и использовать фиктивные значения (нольили пустая строка, например) для столбцов, для которых у вас нет значений.Например,
SELECT col1
, null as col2
, col3
...
Следует помнить о EF: когда он генерирует сложный тип, он в основном вызывает ваш SP и передает null для всех параметров.Независимо от того, какой набор результатов будет возвращен, это то, что EF собирается использовать при создании сложного типа.
Мы обнаружили, что это одна из самых неприятных вещей с EF.