Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 我是否需要首先为实体框架代码中的每个poco属性设置长度?_Model View Controller_Entity Framework 4_Code First_Nvarchar - Fatal编程技术网

Model view controller 我是否需要首先为实体框架代码中的每个poco属性设置长度?

Model view controller 我是否需要首先为实体框架代码中的每个poco属性设置长度?,model-view-controller,entity-framework-4,code-first,nvarchar,Model View Controller,Entity Framework 4,Code First,Nvarchar,我是否需要首先为实体框架代码中的每个poco属性设置长度?如果我不 为属性设置stringLength或maxlength/minlength,它将是nvarchar(最大值),nvarchar(最大值)有多糟?我是否应该在开发阶段就把它放在一边,并在生产之前对其进行改进?NVARCHAR-是可变长度字段。所以它只占用你需要的空间。另一方面,NCHAR分配它所需的所有空间,而不是像NVARCHAR那样按需分配。 MSDN建议在列数据项的大小可能会有很大差异时使用nvarchar。 对于我来说,这

我是否需要首先为实体框架代码中的每个poco属性设置长度?如果我不
为属性设置stringLength或maxlength/minlength,它将是nvarchar(最大值),nvarchar(最大值)有多糟?我是否应该在开发阶段就把它放在一边,并在生产之前对其进行改进?

NVARCHAR-是可变长度字段。所以它只占用你需要的空间。另一方面,NCHAR分配它所需的所有空间,而不是像NVARCHAR那样按需分配。 MSDN建议在列数据项的大小可能会有很大差异时使用nvarchar。
对于我来说,这是一个项目的早期阶段。您可以在需要时对其进行调整。

您应该为要限制长度的每个属性定义最大长度。请注意,
nvarchar(max)
数据类型不同于
nvarchar(n)
数据类型,其中
n
是1-4000之间的数字。定义“无最大长度”时得到的
max
版本适用于较大的文本块,如段落等。它可以处理非常大的长度,因此数据与记录的其余字段分开存储<另一方面,code>nvarchar(n)与其余行一起内联存储

最好现在就开始设置这些值,而不是等到以后再设置。选择您需要的最大值,这样您就不必增加它们<代码>nvarchar(n)有效存储其信息;例如,
nvarchar(200)
不一定占用200个字符的空间;它只使用足够的空间来存储实际放入的内容,再加上几个额外的字节以节省其长度


因此,只要有可能,就应该对实体的文本字段设置限制。

根据下一篇博客,nvarchar(max)与ntext不同,直到实际值大小未达到4000个符号(原因限制为8K,而widechar每个字符使用两个字节)。就达到这个大小而言,它的行为与ntext几乎相同。所以对我来说,我看不出有什么好的理由可以避免使用nvarchar(max)数据类型。

nvarchar(#)和nvarchar(max)之间有很大的区别。前者是你正在谈论的领域。后者是另一种野兽,更像旧的ntext。据我所知,重要的推论是,
nvarchar(max)
,由于其不同,不能用作键。所以任何可能是键的东西都需要一个不同的值。