NHibernate DecimalMin Validator
-
25-09-2019 - |
Domanda
Sto cercando di utilizzare il validatore DecimalMin dalla libreria NHibernates Validator. Purtroppo, a causa delle restrizioni del compilatore sto ottenendo gli errori quando si tenta di utilizzarlo. Sono sicuro che la sua qualcosa di semplice, ma io sono a un punto in cui ho bisogno di passare ad un altro compito e non bruciare più tempo su di esso in modo che qualsiasi aiuto sarebbe apprezzato.
[DecimalMin(10.01)]
public decimal Amount { get; set; }
Il codice precedente utilizza l'attributo DecimalMin con il valore costruttore 10,01. Il costruttore del attributo accetta valori decimali. Tuttavia, il compilatore non permetterà 10.01 o 10.01m.
Con 10.01 come valore ricevo: "Impossibile convertire il tipo di sorgente 'doppio' per tipo di destinazione 'decimale'
Con 10.01m come valore ricevo: "Un argomento attributo deve essere un'espressione costante, tipo di espressione o creazione matrice espressione di un tipo di parametro di attributo."
Googled intorno per cercare di trovare una risposta e il mio google-fu mi sta venendo a mancare oggi.
Qualcuno ha un esempio di come usare questo validatore?
Soluzione
Questo è un bug nel NHibernate.Validator. I decimali non sono rappresentabili nei parametri degli attributi.
di numeri decimali utilizzare come params attributi in C #?
La soluzione è di patch NHibernate.Validator modo che il costruttore prende un float o doppia e quindi eseguire la conversione decimale nel ctor. Vorrei avere una risposta migliore per voi.