无法将属性设置为字节值,必须将该属性设置为int32类型的非null

时间:2014-10-23 09:00:41

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

数据库在SQL Server 2005中,我所讨论的列的数据类型定义为tinyint(我无法更改此类型)

我创建了一个类型为Int32的模型。在read语句系统中抛出此错误。

  

无法将属性设置为字节值,必须将属性设置为int32

类型的非null

我遇到了其他类型的类似问题,然后在检查CLR映射后我更正了它们。现在,只有在tinyintsmallint的情况下,我才会遇到此问题。

2 个答案:

答案 0 :(得分:15)

SQL Server docs您可以看到TINYINT是一个1字节的值,它作为byte类型映射到.Net。 SMALLINT是2个字节,在.Net中变为Int16

因此,您需要更改模型以使用正确的类型。

答案 1 :(得分:1)

只需从复杂实体更改属性数据类型即可。 在你的情况下,将属性从int32更改为byte。

至少它对我有用。