DBNull
& C# の法線null
はまったく異なるものであり、C# はDBNull.Value
奇妙なランダムなものとして扱われることを学びましたが、データベースは C#null
を値としてどのように扱いますか?
データベースは C#null
を空、文字列、またはランダムなものとして扱いますか?
データベースへのアクセスに使用するものによって異なります。
null
を C#null
にマップしますが、実際にはまったく使用DBNull
しません。DBNull
、データベースを表すために使用しnull
、何かの欠如を表すために `null を使用します。他のデータ アクセス層は、異なる標準またはこれらのいずれかを使用する場合があります。
たとえば、次のクエリです。
SELECT NULL FROM whatever WHERE 1=2
SELECT NULL FROM whatever WHERE 1=1
以下の呼び出し時。
Entity Framework (を使用from .. select
)
IEnumerable
値を返さないもの)null
Entity Framework (を使用First()
)
null
Entity Framework (を使用FirstOrDefault()
)
null
null
SQL DAO (を使用ExecuteScalar()
)
null
DBNull