【发布时间】:2018-11-04 13:59:15
【问题描述】:
现在我正在使用代码优先的方法为数据库创建模型。这将是一个非常大的数据(如数百万行)。所以,我对我选择的类型非常小心。尽可能使用短裤、字节和枚举。
现在,StringLength 和 MaxLength 注释都在限制字符串(或后者的数组)的最大允许长度。
那么,他们是否指定数据库为该字段保留的字节数?如果是这样,在未指定时保留了多少字节?或者它们仅仅是为了验证目的而仅此而已?
我什至不确定数据库中的保留空间是否与我选择的类型相关。也许里面的逻辑完全不同。
当我想到它时,另一个问题出现在我的脑海中。如果我添加一个带有 StringLength(1000) 的“文章”列,会发生什么?考虑到一个 char 占用 2 个字节,现在是否为每个字段保留 2kB?还是与此完全无关?
【问题讨论】:
-
这可能取决于您使用的数据库平台。您是否在自己的数据库上亲自尝试过?发生了什么?
-
对于诸如“如果……会发生什么”或“我能……”之类的问题的答案几乎总是很简单:试一试,看看会发生什么。在这种情况下,我们应该如何知道您的数据库在做什么?
-
是MS SQL Server 2017。不,我还没有机会尝试,数据库现在是空的。我可能会尝试添加虚拟数据来测试自己,但客户正在等待,我现在必须在这个项目上努力工作:)
-
我认为这是常识。我对这个数据库的东西很陌生。
-
@EmreCanSerteli 常识并不常见,亲爱的朋友:
标签: c# asp.net database entity-framework ef-code-first