繁体   English   中英

EF6 Code-First Nullable Byte Cast Error?

[英]EF6 Code-First Nullable Byte Cast Error?

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

“从物化'System.Int64'类型到'System.Int16'类型的指定强制转换无效。”

任何人都可以了解发生了什么事吗?

我认为数据库表中列的数据类型是Int64(BIGINT),但您的数据模型有byte?。 您是否需要将基础表列的数据类型更改为TINYINT或将实体数据模型属性类型更改为long?。

经验教训:当您收到“从物化[type1]到[type2]的指定演员表无效”消息时,请检查所有字段,而不仅仅是您要查询的字段。

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

感谢大家的耐心,帮助和时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM