Posts
163
Comments
179
Trackbacks
5
[NHibernate] - DateTime e update non necessari

Seguendo il post di Gian Maria oggi mi sono deciso ad attivare il log su NHibernate per verificare quali query fossero lanciate sul database (a proposito quando attivate il log ricordatevi di inserire l'inizializzazione di log4net altrimenti non viene loggato niente).

Tutto funziona a meraviglia, ma con mio stupore ho notato che nel dump sono presenti una serie di update a fronte di una semplice lettura di dati (da un solo tipo di entità). Controllo il mio file di mapping ma è tutto molto semplice: qualche proprietà e 4-5 relazioni many-to-one. Vado in debug e in effetti verifico che la sessione è dirty.

Non sapendo che altro verificare, ho iniziato a togliere dal file di mapping proprietà su proprietà fino a scoprire quelle colpevoli: si tratta di due campi DateTime che nel database sono però nullabili. La spiegazione dettagliata del perchè l'entità venga considerata dirty la trovate in questo post di Ayende.

Come consigliato ho risolto il problema modificando le due proprietà affinchè fossero nullable: 

Public Overridable Property Data() As Nullable(Of DateTime) Get Return m_Data End Get Set(ByVal value As Nullable(Of DateTime)) m_Data = value End Set End Property
Technorati Tags: ,


posted on mercoledì 27 febbraio 2008 16:27 Print
Comments
Gravatar
# re: [NHibernate] - DateTime e update non necessari
raffaeu
27/02/2008 17:28
Si in C# viene dichiarata come

public Nullable<DateTime> DataConsegna
{get;set;}
Ma ocho al DateTime.MinDate, su MS SQL non viene accettato. :-P
Comments have been closed on this topic.
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS