2009-07-08 8 views
6

Soy un novato con NHibernate, así que por favor tengan paciencia conmigo.Fecha generada en la base de datos en Insertar con NHibernate

Imaginemos, tengo una propiedad para CreatedDate, y quería que se llenara con el valor de fecha y hora del servidor sql.

La posible solución que descubrí es, marcar esta propiedad como "generated = always" con "insert = false" y "update = false", y luego establecer el valor predeterminado para CreatedDate en el nivel de servidor sql (me refiero a la columna de la base de datos), a "Getdate()".

¿Es este el enfoque correcto? Gracias por su tiempo, cualquier sugerencia será muy apreciada.

Respuesta

2

Otra solución es insertar la fecha en SQL Server, cuando se crea el registro. Haga que la columna no se pueda nulos y establezca su valor predeterminado en la función SQL GETDATE(). Cuando se crea el registro, será fecha/hora marcada. Asócielo en NHibernate como cualquier otra propiedad DateTime.

+0

Esto es lo que hacemos, y tenemos una regla interna que dice que las columnas DateAdded y DateModified se hacen de esta manera. Simple y funciona. – Perhentian

1

Puede asignar la propiedad como fecha y hora. Luego, antes de insertar/actualizar, puede obtener la fecha de la base de datos, como esta:

myEntity.LastModifiedDate = Session.CreateSQLQuery("SELECT GETDATE()").UniqueResult<DateTime>(); 
Session.SaveOrUpdate(myEntity); 
Cuestiones relacionadas