View Full Version : [c#] Problema linq selezione Attributi che possono essere null
3nigma666
16-06-2011, 17:22
Ho questo linq
var IndirizziClienti = (from C in mioDatabase.Clienti
join IC in mioDatabase.IndirizziClienti on C.ID equals IC.IDClienti
join I in mioDatabase.Indirizzi on IC.IDIndirizzi equals I.ID
select new { C.Nome, I.Indirizzo, I.Civico, I.Citta, I.CAP, C.Telefono, C.Referente}).ToList();
Alcuni C.Telefono sono null e quando inserisco i dati alcuni DEVO PER FORZA DI COSA lasciarli null.
Telefono è string
Voglio nel select se TELEFONO è null, mi venga restituito una stringa vuota "".
Come fare?
giangian2
17-06-2011, 06:59
ciao,
non l'ho provato e non so se funziona su una query LINQ ma puoi provare cosi:
var IndirizziClienti = (from C in mioDatabase.Clienti
join IC in mioDatabase.IndirizziClienti on C.ID equals IC.IDClienti
join I in mioDatabase.Indirizzi on IC.IDIndirizzi equals I.ID
select new { C.Nome, I.Indirizzo, I.Civico, I.Citta, I.CAP, C.Telefono == null ? String.Empty : C.Telefono, C.Referente}).ToList();
Giusto.
e per essere piu' raffinati, consiglio l'operatore ?? (questo sconosciuto)
C.Telefono == null ? String.Empty : C.Telefono
equivale a
C.Telefono ?? string.Empty
ovvero restituisce il termine sinistro. Ma se il sinistro e' null, allora restituisce il destro.
banryu79
20-06-2011, 08:15
Giusto.
e per essere piu' raffinati, consiglio l'operatore ?? (questo sconosciuto)
Noo... in C# c'è sta roba? figata!
Quante volte mi è capitato di desiderare un operatore del genere :sbav:
Kralizek
20-06-2011, 08:48
Noo... in C# c'è sta roba? figata!
Quante volte mi è capitato di desiderare un operatore del genere :sbav:
fosse solo questo, go back to your java :sofico:
banryu79
20-06-2011, 09:06
fosse solo questo, go back to your java :sofico:
Beh, Java non è solo Java (come .NET non è solo C#) e quando uso Scala ho le Option, che sono ancora più eleganti e potenti... statte buono :D
E' che ho usato un sacco l'operatore ternario (brutto, brutto, brutto :D) e quell'operatore ?? è stata una sorpresa (molte volte ne ho sentito la neccessità), tutto qui.
Kralizek
20-06-2011, 09:51
Beh, Java non è solo Java (come .NET non è solo C#) e quando uso Scala ho le Option, che sono ancora più eleganti e potenti... statte buono :D
E' che ho usato un sacco l'operatore ternario (brutto, brutto, brutto :D) e quell'operatore ?? è stata una sorpresa (molte volte ne ho sentito la neccessità), tutto qui.
tranquillo che si scherzava ;)
e per rendere questo post un po' piú utile...
http://msdn.microsoft.com/en-us/library/ms173224.aspx
banryu79
20-06-2011, 10:02
tranquillo che si scherzava ;)
Chiaro, ma come potevo non risponderti? :D
E' che ho usato un sacco l'operatore ternario (brutto, brutto, brutto :D) e quell'operatore ?? è stata una sorpresa (molte volte ne ho sentito la neccessità), tutto qui.
Ma non basta farti una funzione? Tipo la nvl in oracle... :confused:
ps. che ti ha fatto di male l'operatore ternario?
banryu79
20-06-2011, 11:10
Ma non basta farti una funzione? Tipo la nvl in oracle... :confused:
ps. che ti ha fatto di male l'operatore ternario?
Ma te chi sei? :D
Il mio analista? :asd:
edit: l'operatore ternario non mi ha fatto niente (a me piace), solo che ha una cattiva reputazione (non ricordo dove ho letto tutti i "misusing" a cui si presta)
Kralizek
20-06-2011, 12:35
Ma te chi sei? :D
Il mio analista? :asd:
edit: l'operatore ternario non mi ha fatto niente (a me piace), solo che ha una cattiva reputazione (non ricordo dove ho letto tutti i "misusing" a cui si presta)
io ci ho fatto le peggio porcate nelle linq queries!
Ma te chi sei? :D
Il mio analista? :asd:
Beh, se continui ad usare java di tua spontanea volontà nel 2011, probabilmente è dovuto a qualche conflitto infantile irrisolto :friend:
banryu79
20-06-2011, 15:03
Beh, se continui ad usare java di tua spontanea volontà nel 2011, probabilmente è dovuto a qualche conflitto infantile irrisolto :friend:
Mi salvo un pochino se ti dico che sto imparando ad aprezzare anche Scala (anche se sono agli inizi)?
devbeginner
20-06-2011, 18:04
ma usi le join nelle tue query perché si tratta di LINQ2SQL? :confused:
3nigma666
22-06-2011, 21:03
ragazzi non ho parole siete mitici!!! GRAZIE MILLE!!!!!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.