我已经了解到DBNull
& C#normal null
是完全不同的东西,C#将DBNull.Value
视为一些奇怪的随机内容,但数据库将C#null
视为值?
数据库是否会将C#null
视为空或字符串或一些随机内容?
答案 0 :(得分:2)
这取决于您用来访问数据库的内容。
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