DamienG работает в команде LinqToSql в Microsoft, и я назвал его ответ верным.
При этом он, скорее всего, не посоветует вам отказаться от LinqToSql, и я думаю, что очень важно рассмотреть этот вариант.
Попытка угадать тип возврата хранимой процедуры очень сложна, и LinqToSql делает это так же, как и любой другой (для SQL Server).Тем не менее, есть очень веские причины не использовать хранимые процедуры:
Хранимые процедуры плохие, хорошо?
Если вы должны защитить свои таблицы от разработчиков для«соображения безопасности» (я полагаю, это ситуация, в которой вы находитесь), лучше всего делать это с представлениями, а не с хранимыми процедурами.
Если вы используете представления, у вас тогда будет намного лучшие варианты вОтдел ORM, чем LinqToSql.
Основная проблема, с которой вы столкнетесь с LinqToSql, заключается в том, что то, что работает нормально для 5 хранимых процедур в крошечной базе данных, не работает нормально для 50 или 500 хранимых процедур.,Вы можете использовать O / R Designer для «переопределения» возвращаемого типа хранимой процедуры, но у вас будут существенные проблемы с синхронизацией, когда хранимые процедуры или таблицы и т. Д. Работают при изменении.Изменения в хранимых процедурах не будут отражены в O / R Designer, если вы не удалите хранимую процедуру из O / R Designer, повторно добавите ее, а затем повторно примените свое пользовательское переопределение.Если ваш проект похож на обычный проект, таблицы и хранимые процедуры часто меняются, и эта проблема синхронизации вскоре становится кошмаром, потому что она полностью ручная, и если вы не сделаете это правильно, вы получите очень странные ошибки во время выполнения.
Я бы настоятельно рекомендовал не идти по пути, по которому вы идете.