Asp.net mvc 2 对象不能从DBNull强制转换为其他类型实体框架

Asp.net mvc 2 对象不能从DBNull强制转换为其他类型实体框架,asp.net-mvc-2,.net-4.0,entity-framework-4,Asp.net Mvc 2,.net 4.0,Entity Framework 4,我的一个模型中有一列可以为空。它在EDMX中可以为null,我已经检查过它在生成的代码中是否可以为null。我已经在数据库中检查了它是否可以为空。然而,当我试图保存一个列设置为null的模型实例时,我收到一个异常“Object cannot becast from DBNull to other types”。这里涉及的大部分代码要么是实体框架代码本身,要么是生成的代码。我还有其他可以为null的列,它们似乎没有这个问题 有人碰到过这样的事吗?通过谷歌搜索发现,人们需要使用手动ADO记录集执行i

我的一个模型中有一列可以为空。它在EDMX中可以为null,我已经检查过它在生成的代码中是否可以为null。我已经在数据库中检查了它是否可以为空。然而,当我试图保存一个列设置为null的模型实例时,我收到一个异常“Object cannot becast from DBNull to other types”。这里涉及的大部分代码要么是实体框架代码本身,要么是生成的代码。我还有其他可以为null的列,它们似乎没有这个问题

有人碰到过这样的事吗?通过谷歌搜索发现,人们需要使用手动ADO记录集执行
if(someSqlValue==DBNull.Value)
,但由于这是EF与DBNull的交互,我的代码中没有任何地方可能需要检查这一点


不幸的是,我无法与此共享代码,正如我所提到的,我的大多数可空列都没有出现此问题,因此我对在一个小测试用例中重现此问题的能力没有信心。

您是否检查了EDMX中的类型是否与数据库中的类型匹配(即,您没有试图将null int SQL值填充到可为空的日期时间字段或类似字段中)?

您是否检查了EDMX中的类型是否与数据库中的类型匹配(即,您没有尝试将null int SQL值填充到可为空的日期时间字段或类似字段中)?

实际上,我只是尝试在其中放入一个文本
null
,但它给出了错误…我不确定您在这里指的是什么。我的意思是,无论您处理的实际值是什么,都要在实体框架映射中仔细检查字段/属性的类型(映射中指定的.NET类型和SQL类型),并验证它是否与SQL表中的列类型匹配。实际上,我只是尝试在其中放入一个literal
null
,但它给出了错误…我不确定您在这里指的是什么。我是说,无论您处理的实际值是什么,都要仔细检查实体框架映射中字段/属性的类型ping(映射中指定的.NET类型和SQL类型),并验证它是否与SQL表中列的类型匹配。