OdbcParameter.SourceColumnNullMapping プロパティ


ソース列が Null 許容かどうかを示す値を取得または設定します。Gets or sets a value which indicates whether the source column is nullable. DbCommandBuilder は、これを使用することにより、null 許容の列に対する Update ステートメントを正しく生成できます。This lets DbCommandBuilder correctly generate Update statements for nullable columns.

 virtual property bool SourceColumnNullMapping { bool get(); void set(bool value); };
public override bool SourceColumnNullMapping { get; set; }
member this.SourceColumnNullMapping : bool with get, set
Public Overrides Property SourceColumnNullMapping As Boolean



ソース列が null 許容である場合は true。null 許容ではない場合は falsetrue if the source column is nullable; false if it is not.


SourceColumnNullMapping は、null 値を DbCommandBuilder 許容する列を処理するときに、更新コマンドを正しく生成するためにによって使用されます。SourceColumnNullMapping is used by the DbCommandBuilder to correctly generate update commands when dealing with nullable columns. 一般に、の使用 SourceColumnNullMapping は、を継承する開発者に限定され DbCommandBuilder ます。Generally, use of SourceColumnNullMapping is limited to developers inheriting from DbCommandBuilder.

DbCommandBuilder このプロパティを使用して、ソース列が null 値を許容するかどうかを判断し、null 値が許容される場合はこのプロパティをに設定し true ます。そうでない場合は、をに設定し false ます。DbCommandBuilder uses this property to determine whether the source column is nullable, and sets this property to true if it is nullable, and false if it is not. が Update ステートメントを生成するときに、 DbCommandBuilder for each パラメーターが調べられ SourceColumnNullMapping ます。When DbCommandBuilder is generating its Update statement, it examines the SourceColumnNullMapping for each parameter. プロパティがの場合 true 、は DbCommandBuilder 次の例のような WHERE 句を生成します。If the property is true, DbCommandBuilder generates a WHERE clauses like the following example. このクエリ式では、"FieldName" はフィールドの名前を表します。In this query expression, "FieldName" represents the name of the field:

((@IsNull_FieldName = 1 AND FieldName IS NULL) OR   
  (FieldName = @Original_FieldName))  

SourceColumnNullMappingフィールドが false の場合、では DbCommandBuilder 次の where 句が生成されます。If SourceColumnNullMapping for the field is false, DbCommandBuilder generates the following WHERE clause:

FieldName = @OriginalFieldName  

さらに、 @IsNull_FieldName ソースフィールドに null が含まれている場合は1、それ以外の場合は0が格納されます。In addition, @IsNull_FieldName contains 1 if the source field contains null, and 0 if it does not. このメカニズムにより、SQL Server でのパフォーマンスの最適化が可能になり、複数のプロバイダーで動作する共通のコードが提供されます。This mechanism allows for a performance optimization in SQL Server, and provides for common code that works across multiple providers.