我是否需要为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