如何设置小数精度以减小数据库大小? 我的codefluent模型中有一个十进制值。 SQL生成器为此属性生成一个十进制(28,13)字段。但是,我使用该属性存储的值在小数分隔符之后永远不会超过两位数,之前不会超过四位。 28,13是矫枉过正的。如何强制生产者将其设为(6,2)小数?
答案 0 :(得分:1)
您可以在生产者级别设置所需的十进制列精度:
<cf:producer name="SQL Server" typeName="CodeFluent.Producers.SqlServer.SqlServerProducer, CodeFluent.Producers.SqlServer">
<cf:configuration
decimalScale="2"
decimalPrecision="6" />
</cf:producer>
生成的列是
[Price] [decimal] (6,2) NOT NULL
答案 1 :(得分:1)
您可以使用特定于SQL Server Producer的size
和dataType
属性,如下所示:
<cf:property name="MyNumericProperty"
typeName="decimal"
cfps:size="6,2"
cfps:dataType="numeric"
xmlns:cfps="http://www.softfluent.com/codefluent/producers.sqlserver/2005/1"
/>
请注意,在大多数情况下,decimal
在.NET中也是过度的(16字节)。