C#中的null在Sql Server中转换为'NULL'

时间:2014-06-04 09:12:16

标签: c# sql sql-server entity-framework

我试图在Sql Server中插入NULL值,如果我在相应的C#String对象中有空值,如下所示:

String Residence = xmlDoc.Descendants("Appointment").Single().Element("StateOfResidence") == null ? null : xmlDoc.Descendants("Appointment").Elements("StateOfResidence").Single().Value;

我正在使用Entity框架进行数据库访问。因此,如果Residence为null,则'NULL'将插入到Database而不是NULL中。如何为null插入NULL?

2 个答案:

答案 0 :(得分:1)

数据库空值与您在C#中使用的常规空值的类型不同。因此,要将空值插入数据库,您必须使用以下代码类型,而不是null"NULL"

DBNull.Value

答案 1 :(得分:1)

实体框架应该为您处理此问题,因此您遇到的问题是

xmlDoc.Descendants("预约&#34)。单()元素(" StateOfResidence&#34)

实际上有字符串值" NULL"

你可以改变你的逻辑来说明

String Residence = xmlDoc.Descendants("Appointment").Single().Element("StateOfResidence");
if(Residence == "NULL")
{
    Residence = null;
}

但实际上有点hacky - 我个人正在研究为什么你的xml实际上有字符串值" NULL"如果xml在你的控制之下,可能应该是空节点。