我是否需要爲Entity Framework Code First中的每個poco屬性設置長度?如果我不爲 設置stringLength或maxlength/minlength屬性,它將是nvarchar(max),nvarchar(max)有多糟?我應該把它放在發展階段,並在生產之前改進它?我是否需要爲Entity Framework Code First中的每個poco屬性設置長度?
回答
您應該爲每個要限制長度的屬性定義最大長度。請注意,nvarchar(max)
數據類型與nvarchar(n)
數據類型不同,其中n
是1-4000的數字。當您定義沒有最大長度時,您獲得的max
版本適用於大型文本塊,如段落等。它可以處理非常大的長度,因此數據將與記錄的其餘字段分開存儲。另一方面,nvarchar(n)
與其餘行保持內聯。
這可能是最好的了,現在就設置這些值,而不是等到稍後再做。選擇和你需要的一樣大的值,所以你永遠不必增加它們。 nvarchar(n)
高效地存儲其信息;例如,nvarchar(200)
不一定佔用200個字符的空間;它只使用足夠的空間來存儲實際放入的內容,並且還需要額外的幾個字節來保存其長度。
因此,只要有可能,您應該對實體的文本字段設置限制。
NVARCHAR - 是可變長度字段。所以它只消耗你需要的空間。另一方面,NCHAR按照NVARCHAR的要求分配所需的所有空間。 MSDN建議在列數據條目的大小可能差異很大時使用nvarchar。 在項目的早期階段,這是我走的路。您可以在需要時調整它。
nvarchar(#)和nvarchar(max)之間存在非常大的差異。前者是你正在談論的領域。後者是一個不同的野獸,更像舊的文字。 – 2012-04-27 02:33:28
根據下一個博客post在實際值大小未達到4000個符號(因爲限制爲8K,並且每個字符使用兩個字節)之前,nvarchar(max)與ntext不同。只要它達到這個尺寸,它的行爲幾乎與ntext相同。至於我,我沒有看到有任何理由避免使用nvarchar(max)數據類型。
- 1. Code First Entity Framework
- 2. ASP.NET Entity Framework Code First Migrarion
- 3. 如何使用Entity Framework 6.1.1中的[Index]屬性和Code First
- 4. Code First Entity Framework:外鍵問題
- 5. orm with entity framework 4 and code first
- 6. 獲取Entity Framework將LONG設置爲零而不需要可爲空的屬性
- 7. 虛擬關鍵字在Entity Framework 4.1 POCO Code First中有什麼作用?
- 8. 我可以在Entity Framework Code First中禁用自動關係嗎?
- 9. 我們是否需要爲HTML表格中的每個單元格設置寬度屬性?
- 10. 子對象是否應該在Entity Framework 4 Code-First中自動更新?
- 11. Code First Entity Framework爲什麼會生成外鍵?
- 12. Entity Framework 4 Code First是否支持像NHibernate這樣的身份生成器?
- 13. 我們是否需要使用Entity Framework 4.0的BindingSource?
- 14. 如何分離Entity Framework Code First中的對象?
- 15. Entity Framework 6.1.3和SQL Server CE 4.0 - Code First設置密碼以保護sdf文件
- 16. 在EF Code First中,如何設置一對多屬性?
- 17. 如何在'Code First Entity Framework'中避免'discriminator'列
- 18. 我是否需要使用Fluent API配置與Entity Framework的關係的雙方?
- 19. 我是否需要使用屬性ClassId來代表Code First(實體框架)中的關係?
- 20. Entity Framework 4 Code Only從MetaData獲取POCO域對象的表名
- 21. 爲什麼我的導航屬性在Entity Framework 4中爲空?
- 22. Entity Framework Code First - 如何在保存時忽略列
- 23. 如何使用Entity Framework 4 Code-First定義數據庫視圖?
- 24. 在Code-First和POCO中使用Entity Framework 4.0:如何獲取所有子項的父對象?
- 25. Entity Framework v4 - POCO與僅限於Code-Only有什麼區別?
- 26. 是否可以在ASP.Net屬性中設置所需的屬性?
- 27. 如何爲所有Code First必需的字符串設置AllowEmptyStrings?
- 28. 我該如何別名由Entity Framework Code First From Database生成的部分類?
- 29. 如何使Entity Framework的非「必需」屬性爲必填項?
- 30. 如何使用Entity Framework從現有數據庫中乾淨地生成POCO類4.3 Code First方法?
據我所知,重要的推論是nvarchar(max)由於其不同而不能用作關鍵字。所以任何可能是關鍵的東西都需要不同的價值。 – glenatron 2012-09-18 15:08:00