Я рекомендую использовать сначала подход к базе данных, чтобы автоматически сгенерировать для этого код cs, а затем внедрить этот код в свой (ручной) код.
Если вы реализуете MySPResult таким образом, вы можете использовать его:
ISingleResult<MySPResult> spResult = DataContext.MySP( params )
Вам нужно использовать LINQ to SQL для этого? Вы можете вызвать SP по DbCommand. Если вам нужно вернуть свою сущность POCO, вы все равно можете преобразовать ее вручную или написать общий преобразователь сущностей.
(Также подумайте, нужно ли вам вообще использовать SP; вы можете использовать стандартный LINQ, LINQ в качестве выражения, динамический запрос, тогда вам не нужно реализовывать автоматически сгенерированный типизированный код оболочки).