Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] LinqToXML e tipi nullable
Forum - C# / VB.NET - [VB.NET] LinqToXML e tipi nullable

Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 14:59
Domenica, 20/02/2011
Salve a tutti,
ho bisogno di salvare in un DB XML un'insieme di classi.
Il problema è che una proprietà della classe è una data nullable, che quindi può avere il valore di una data o un valore nullo.
Il problema si verifica al reload del DB, quando deve passare come parametri al costruttore i valori che legge. Viene generata l'eccezione " Cast non valido dalla stringa "" al tipo 'Date' ".
E fin qui ok, perchè quando la Data è nulla, la proprietà non viene salvata nell XML, e il parametro è una stringa vuota.

Ho cercato quindi di aggirare in questo modo:

Codice sorgente - presumibilmente VB.NET

  1. Dim query = From m In xmlDB...<Model>.Descendants
  2.                                 Select New Model(m.@Proprietà,
  3.                                                    m.@Proprietà,
  4.                                                    m.@Proprietà,
  5.                                                    IIf(Not m.@Data= String.Empty,
  6.                                                        m.@Data,
  7.                                                         Nothing),
  8.                                                    m.@Proprietà,
  9.                                                    m.@Proprietà,
  10.                                                    m.@Proprietà,
  11.                                                    m.@Proprietà,
  12.                                                    m.@Proprietà)



ora però l'errore è "Cast specificato non valido".

la proprietà di tipo Date? è questa

Codice sorgente - presumibilmente VB.NET

  1. Private _Data As Date? = Nothing
  2.         Public ReadOnly Property Data As Date?
  3.             Get
  4.                 Return _Data
  5.             End Get
  6.         End Property



e il costruttore della classe accetta un parametro di tipo Date?.

Potreste aiutarmi a capire dove sbaglio?

Grazie! :k:


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 19:34
Domenica, 20/02/2011
credo che il problema stia nella classe in sè, per essere serializzata su xml deve avere pubblici tutti i setter delle proprietà. In pratica non puoi avere proprietà readonly :)

Ok, ma non credo sia un problema, perchè io nel costruttore non assegno il valore del parametro a Data ma a _Data - Dedalux - 20/02/11 22:00
forse quello che stai cercando di fare è concettualmente sbagliato - Gianluca87 - 21/02/11 23:55
E' un'ipotesi o un'affermazione? Se la seconda, potresti spiegarti? Grazie =) - Dedalux - 22/02/11 00:44


Ingegnere Informatico
https://ldlagency.it
PM