我的问题具体涉及SQL Server 2008和.NET 3.5实体框架之间的数字类型映射。SQL Server 2008和LINQ之间的类型映射
我工作的公司在设计数据库时有相当严格的规则。所述规则由DBA强制执行,DBA对表格没有任何大于他们所需的大小是神经质的。例如,他坚持认为,在适当的情况下,我们将数字列保留为tinyint和smallint。
的EF映射数值类型像这样(在左侧SQL服务器类型,.NET类型上右):
TINYINT - >字节
SMALLINT - >的Int16
INT - >Int
bigint - >Int64
我的担心是由于我最近做了一些阅读并发现.NET运行时被优化以与Int32一起使用。 This关于Stackoverflow的问题真的进入了它的内心,任何人都想要做一个读取它。
我的问题是这样的:由于EF将smallint映射到Int16,我是否应该考虑优化问题并在代码中使用Int16成员变量,还是有其他解决方案可以让我使用Int32键入代码并仍然可以在SQL Server中使用smallint类型?我可以自己想想一个或两个解决方案,但它们都以“优化”的名义看起来过于夸张。
我不知道这个,但我想你可以只改变你的模型中的属性的类型为in32,只要你不发送大于int16的值最大值一切都应该没问题。 – ryudice 2011-02-02 23:45:54
@ryudice - 不幸的是,这不起作用...或者至少不与LINQ to Entities(它可能适用于LINQ to SQL?)。我试过了,它让我生气了。 – Jagd 2011-02-03 16:13:28