FluentNHibernate - Valor de ajuste por defecto para las columnas de base de datos (SQL Server)
-
21-09-2019 - |
Pregunta
¿alguien sabe una manera de cómo podría establecer a través de la cartografía del valor predeterminado de una columna de modo de ejemplo, cuando genero DB de asignaciones que tendría DateTime columna que tiene getdate () como valor por defecto?
He intentado lo que va (se ve como exactlly lo que necesito) pero no funciona
this.Map(x => x.LastPersistedOn, "DateModified")
.Access.Property()
.Default("getdate()");
Solución
he intentado establecer algunos valores por defecto y ha funcionado como se esperaba. Estoy usando Fluido como recuperar de Git el 24.05.2010 por lo que actualizar su copia puede resolver su problema.
Mapeo
public class SampleEntity
{
public virtual DateTime DateTimeProperty { get; set; }
}
Con
public class SampleEntityMap
: ClassMap<SampleEntity>
{
public SampleEntityMap()
{
Map(x => x.DateTimeProperty, "DateTimeColumn")
.Access.Property() //actually not necessary
.Not.Nullable()
.Default("getDate()");
}
}
Esto producirá el siguiente sql (de salida a la consola)
create table SampleEntity(
DateTimeColumn DATETIME default getDate() not null
)
-
Dom
Otros consejos
La forma de hacerlo es asignar la corriente DateTime en el código en lugar de utilizar el valor por defecto en la base de datos. A continuación, tratarla como una columna normal. Parecía un poco extraño para mí en un principio que viene de un fondo de diseño basado en modelos, pero la gestión de los valores por defecto a nivel POCO es la forma DDD para hacerlo.
Sería bueno escuchar las opiniones de otros también