我的問題具體涉及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