size は -1
を渡す。
公式ドキュメントが中々見つからないのが難点…。
大きい値 (max) データの変更 - ADO.NET | Microsoft Docs
から抜粋
CREATE PROCEDURE GetDocumentSummary ( @DocumentID int, @DocumentSummary nvarchar(MAX) OUTPUT ) AS SET NOCOUNT ON SELECT @DocumentSummary=Convert(nvarchar(MAX), DocumentSummary) FROM Production.Document WHERE DocumentID=@DocumentID
SqlParameter paramSummary = new SqlParameter("@DocumentSummary", SqlDbType.NVarChar, -1);
つーわけで、nvarchar(MAX) の DocumentSummary の Size は -1
渡してます。