2009-07-08 9 views
6

Sono un principiante con NHibernate, quindi per favore abbiate pazienza con me.Data di generazione del database inserita con NHibernate

Immaginiamo, ho una proprietà per CreatedDate e volevo che fosse riempito con il valore datetime del server sql.

La possibile soluzione che ho scoperto è contrassegnare questa proprietà come "generated = always" con "insert = false" e "update = false", quindi impostare il valore predefinito per il CreatedDate a livello di server sql (intendo la colonna del database), a "Getdate()".

È questo l'approccio giusto? Grazie per il tuo tempo, ogni suggerimento sarà ben apprezzato.

risposta

2

Un'altra soluzione è quella di inserire la data in SQLServer, quando viene creato il record. Rendi la colonna non annullabile e imposta il suo valore predefinito sulla funzione SQL GETDATE(). Quando il record è creato, sarà data/data/ora. Mappalo in NHibernate come qualsiasi altra proprietà DateTime.

+0

Questo è ciò che facciamo, e abbiamo una regola interna che tutte le colonne DateAdded e DateModified sono fatte in questo modo. Semplice e funziona. – Perhentian

1

È possibile associare la proprietà come data/ora. Quindi, prima di qualsiasi inserimento/aggiornamento, è possibile ottenere la data dal database, in questo modo:

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