Jak jste uvedli, je to proto, že C#2.0 nepodporuje volitelné parametry.
Jedním z řešení může být zabalení uložených procedur .NET do běžných uložených procedur T-SQL, které přijímají výchozí parametry.
Například:
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
Je to trochu ošklivé, ale mohlo by vás to prozatím dostat na cestu.