EF6代码优先可空字节转换错误

本文关键字:字节 转换 错误 代码 EF6 | 更新日期: 2023-09-27 18:09:38

我使用实体框架6 Code-First与我的。net 4.0项目与数据库通信。我正在使用的表中的一列是允许NULL值的tinyint。在我的模型中,我将该列定义为可空字节(byte?)。我用LinqPad来测试我的模型。当我尝试运行Linq语句时,我说Fieldname。,我得到以下错误:

"来自物化'系统'的指定cast。Int64'类型到'System '。Int16'类型无效。"

有谁能解释一下发生了什么事吗?

EF6代码优先可空字节转换错误

我认为你的数据库表中的列的数据类型是Int64 (BIGINT),但你的数据模型有字节?要么需要将基础表列的数据类型更改为TINYINT,要么需要将实体数据模型属性类型更改为long?

经验教训:当您收到"从物化的[type1]到[type2]的指定类型转换无效"消息时,请检查所有字段,而不仅仅是您试图查询的字段。

我的错误是假设错误与具有可空字节值的字段有关。原来还有一个字段我定义为"int",但SQL类型是"bigint",因此出现错误。

感谢大家的耐心、帮助和宝贵的时间。