我了解到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())
nullnullSQL DAO(使用ExecuteScalar())
nullDBNull