如果我插入C#' NULL'进入DataBase?

时间:2013-02-04 19:49:22

标签: c# database null

我已经了解到DBNull& C#normal null是完全不同的东西,C#将DBNull.Value视为一些奇怪的随机内容,但数据库将C#null视为值?

数据库是否会将C#null视为空或字符串或一些随机内容?

1 个答案:

答案 0 :(得分:2)

这取决于您用来访问数据库的内容。

  • 实体框架会将数据库null映射到C#null,实际上它根本不使用DBNull
  • SQL DAO(例如System.Data.SqlClient.SqlCommand)使用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