我的一个模型中有一个可以为空的列。它在EDMX中可以为空,我已经检查过它在生成的代码中可以为空。我已经八次检查它在数据库中可以为空。但是,当我尝试保存模型的实例并将列设置为null时,我收到异常“对象无法从DBNull转换为其他类型”。这里涉及的大多数代码都是实体框架代码本身或生成的代码。我有其他可以为空的列似乎没有这个问题。
有没有人碰到这样的事情?谷歌搜索的东西大多显示需要使用手动ADO记录集进行if (someSqlValue == DBNull.Value)
的人,但由于这是EF与DBNull的交互,我的代码中没有任何地方可能需要检查它。
不幸的是,我无法与此共享代码,正如我所提到的,我的大多数可空列都没有出现这个问题,因此我对在小测试用例中重现问题的能力没有信心。
答案 0 :(得分:0)
您是否检查过EDMX中的类型是否与数据库中的类型匹配(即您没有尝试将null int SQL值填充到可以为空的DateTime字段或类似内容中?)