Comme vous l'avez souligné, c'est parce que C#2.0 ne prend pas en charge les paramètres optionnels.
Une solution de contournement peut consister à encapsuler les procédures stockées .NET dans des procédures stockées T-SQL normales qui acceptent les paramètres par défaut.
Par exemple :
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
C'est un peu moche, mais cela pourrait vous mettre sur la bonne voie pour le moment.