小数精度codefluent

Decimal precision codefluent

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

您可以在生产者级别为小数列设置所需的精度:

<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

您可以使用 SQL 服务器生产者特定的 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 字节)中也是矫枉过正的。