Como señaló, esto se debe a que C#2.0 no admite parámetros opcionales.
Una solución puede ser envolver los procedimientos almacenados .NET en procedimientos almacenados T-SQL normales que acepten parámetros predeterminados.
Por ejemplo:
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
Es un poco feo, pero puede que te ayude por ahora.