我了解到DBNull
& C# normalnull
是完全不同的东西,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
当被以下调用时:
实体框架(使用from .. select
)
IEnumerable
从不返回值)null
实体框架(使用First()
)
null
实体框架(使用FirstOrDefault()
)
null
null
SQL DAO(使用ExecuteScalar()
)
null
DBNull