代码之家  ›  专栏  ›  技术社区  ›  Donn Felker

NHibernate小数验证程序

  •  1
  • Donn Felker  · 技术社区  · 15 年前

    我试图使用来自NHibernates验证程序库的DecimalMin验证程序。不幸的是,由于编译器的限制,我在尝试使用它时遇到了错误。我相信这很简单,但我现在需要转移到另一个任务上,不要再浪费时间了,这样任何帮助都会受到感激。

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

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

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

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

    我到处搜索,试图找到答案,而我的google fu今天却让我失望了。

    有没有人有使用这个验证器的例子?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    这是NHibernate.Validator中的错误。小数在属性参数中不可表示。

    use decimal values as attribute params in c#?

    解决方案是对NHibernate.Validator进行修补,使构造函数接受一个float或double,然后在ctor中执行到decimal的转换。希望我能给你一个更好的答案。

    推荐文章