NHibernate Validator y esquema de exportación pregunta
-
03-10-2019 - |
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).
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.