十进制精度codefluent

时间:2016-04-20 09:09:49

标签: codefluent

如何设置小数精度以减小数据库大小? 我的codefluent模型中有一个十进制值。 SQL生成器为此属性生成一个十进制(28,13)字段。但是,我使用该属性存储的值在小数分隔符之后永远不会超过两位数,之前不会超过四位。 28,13是矫枉过正的。如何强制生产者将其设为(6,2)小数?

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的sizedataType属性,如下所示:

<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字节)。