私は ADO.Net のパラメーターをあまり扱っていません。カスタム .Net データ プロバイダー (SqlClient をモデルに) を作成しており、DbParameter から継承するパラメーター クラスに IsNullable プロパティを実装する必要があります。私のデータ プロバイダーはストアド プロシージャをサポートしないため、入力 (置換スタイル) パラメーターのみをサポートします。
MSDN のドキュメントでは、IsNullable の機能について、「パラメーターが null 値を受け入れるかどうかを示す値を取得または設定する」と述べており、かなり不明確です。IsNullable を false に設定しても、パラメーターを使用することを禁止するわけではないと言って、IsNullable の機能について多くの人が混乱していることがわかります。
これに基づいて、おそらくIsNullableプロパティはストアドプロシージャでの使用に関連し、ストアドプロシージャのパラメーターがnull可能かどうかであり、パラメーター値がnullにできるかどうかではないと考えています。
その場合、ストアド プロシージャがないため、実装は次のようになります。
public override bool IsNullable { get { return false; } set {} }
SqlParameter の IsNullable の実装がどのように機能するかを確認するためにいくつかのテスト コードをいじる必要がないように、パラメーターを使用してコードを記述した経験のある人が IsNullable を説明できるとありがたいです。