Мой вопрос конкретно касается сопоставления числовых типов между SQL Server 2008 и .NET 3.5 Entity Framework.
Я работаю в корпорации, у которой довольно строгие правила в отношении проектирования баз данных. Указанные правила применяются администратором базы данных, который невротичен в отношении таблиц, размер которых не больше, чем они должны быть. Например, он настаивает на том, чтобы, где это уместно, мы сохраняли числовые столбцы для tinyint и smallint.
EF отображает числовые типы следующим образом (тип SQL Server слева, тип .NET справа):
tinyint -> Byte
smallint -> Int16
int -> Int
bigint -> Int64
Моя проблема возникает из-за того, что я недавно прочитал и обнаружил, что среда выполнения .NET оптимизирована для работы с Int32. Этот вопрос о Stackoverflow действительно вошел в его суть, если кто-то захочет прочитать его.
У меня такой вопрос: , поскольку EF отображает smallint на Int16, должен ли я просто решить проблему оптимизации и использовать в коде переменные-члены Int16, или есть какое-то другое решение, которое позволило бы мне работать с Int32 вводит код и все еще может использовать мелкие шрифты в SQL Server? Я могу придумать одно или два решения самостоятельно, но все они кажутся излишними во имя «оптимизации».