NHibernate DecimalMin验证器

时间:2010-11-17 21:08:13

标签: c# .net nhibernate nhibernate-validator

我正在尝试使用NHibernates Validator库中的DecimalMin验证器。不幸的是,由于编译器的限制,我在尝试使用它时遇到错误。我确信它的一些简单,但我正处于需要转移到另一个任务而不再燃烧它的时间点上,所以任何帮助都会受到赞赏。

    [DecimalMin(10.01)]
    public decimal Amount { get; set; }

上面的代码使用DecimalMin属性,构造函数值为10.01。 Attribute的构造函数接受十进制值。但是,编译器不允许10.01或10.01m。

以10.01作为我收到的值:“无法将源类型'double'转换为目标类型'decimal'

我收到的值为10.01m:“属性参数必须是常量表达式,表达式类型或属性参数类型的数组创建表达式。”

我已经google了一下试图找到答案,我的google-fu今天失败了。

有没有人有如何使用此验证器的示例?

1 个答案:

答案 0 :(得分:2)

这是NHibernate.Validator中的一个错误。小数在属性参数中无法表示。

use decimal values as attribute params in c#?

解决方案是修补NHibernate.Validator,以便构造函数采用float或double,然后在ctor中执行到decimal的转换。希望我有更好的答案。