2011-08-03 43 views
2

我有大约十几个标记为tinyint的字段,它转换为一个字节字段。我发现我必须在我的代码中进行大量的转换才能与整数交互。MSSQL/C#EF - 将tinyint映射为int?

因此,我正在考虑更改实体框架以读取这些整数而不是字节。除了我可能传递超出tinyint范围的整数的机会之外,这是否有任何含义?我只是在可能不需要他们的地方添加额外的演员阵容?

(我也想只使用,而不是在数据库中的整数的,因为这不会是一个高使用DB)

编辑

从下面扎克的意见/ Entity Framework Mapping SQL Server tinyint to Int16 - 它看起来像我不能只是将属性从字节更改为int?英孚会抛出一个错误?那么,有没有办法做我在想什么?

+3

请看一下这个http://stackoverflow.com/questions/5863162/entity-framework-mapping-sql-server-tinyint-to-int16 – V4Vendetta

+0

谢谢。编辑我的问题:-)。 – bryanjonker

回答

0

不应该因为当你使用整数作为编译器实际优化整数真正被使用的任何问题(我没有记错的话)。

最好的选择将是从字节更改数据库值INT 。恕我直言。

+0

@Marc Gravell,对不起,我的想法和写作有时会以两种不同的方式出现。我听说某处我应该使用Int而不是Int,因为Int会得到优化。它是否正确? – Jethro

+0

它取决于上下文。例如,数组与变量不同。填充起作用时,字段非常棘手。在IL级别,一旦加载到堆栈上,它们几乎完全相同,但大概'int'更容易加载,因为它不需要扩展。虽然不太可能成为瓶颈。更大的问题是非常可能的“开箱” - 如果类型不匹配,这是一个踢球者。 –

+0

感谢您的小小教训。非常感激。 – Jethro