Pregunta

Estoy aprendiendo a usar validador NHibernate y es API Fluido (Bachiller).

he notado es que no puede establecer una propiedad de entero o la propiedad int anulable (int?) Que no anulable. Bueno, ¿por qué no?

En una base de datos, una columna entera puede tener valores nulos. Peor aún, cuando el genero de DDL utilizando SchemaExport, la columna de enteros No será recoger que no nullabity (a menos que lo expreso en las asignaciones de NHibernate).

¿Fue útil?

Solución

Si especifica utilizando los validadores ValidatorDef<>, este es detectada por el esquema de la exportación, y obtendrá las definiciones SQL apropiadas, ejemplo:

public class InvoiceValidationDef : ValidationDef<Invoice>
{
   public InvoiceValidationDef()
   {
       ...
       Define(x => x.Description).NotNullable().And.MaxLength(255);
       ...
   }
}

Los resultados en

create table Invoices (
   ...
   Description NVARCHAR2(255) not null,
   ...
)

Otros consejos

Se dio la respuesta. El validador no es explorado por exportación de esquemas. Usted tiene que utilizar la asignación.

NHibernate Validator se sienta encima de NHibernate. Se utiliza para validar las entidades contra las asignaciones de NHibernate y reglas personalizadas. Para la configuración de las propiedades del campo, como si son anulable, esto se hace en las asignaciones de NHibernate, ya que afecta no sólo a las validaciones hechas, sino también las sentencias SQL generado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top