9 messaggi dal 24 febbraio 2011
Salve buongiorno,

ho questa query:

 Dim query = (From c In Context.Tab_clienti
                            Join m In Context.Tab_movimenti
                            On c.clie_idrecord Equals m.m_idcliente
                            Order By m.m_arrivo, m.m_Idalloggiato, m.m_idrecordconnesso
                            Where c.clie_idstruttura = id
                            Select arrivo = m.m_arrivo, nominativo = c.clie_cognome.ToUpper + " " + c.clie_nome.ToUpper, cittadinanza = c.Tab_cittadinanza.cit_descrizione, nascita = c.clie_datanascita.ToString("{0:dd/MM/yyyy}")+"-"+ c.Tab_comuni_nazioni.c_descrizione, residenza = c.Tab_comuni_nazioni1.c_descrizione, documento = m.Tab_documenti.d_descrizione + "-" + m.m_nrdocumento + "-" + m.Tab_comuni_nazioni1.c_descrizione).ToList


dato che devo formattare la data di nascita solo che mi da il seguente errore:

LINQ to Entities does not recognize the method 'Char get_Chars(Int32)' method, and this method cannot be translated into a store expression.

come posso fare?

grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


LINQ to Entities does not recognize the method 'Char get_Chars(Int32)' method, and this method cannot be translated into a store expression.

Esatto. Tutte le espressioni che usi in una query LINQ, poi il provider di Entity Framework deve convertirle in una query SQL da rivolgere al database.

In questo caso non sa come il metodo C# .ToString("{0:dd/MM/yyyy}") possa essere convertito in una funzione SQL, e perciò ti dà errore.
Devi usare qualcosa che il provider può comprendere, come il metodo DateName delle SqlFunctions.
Lo vedi all'opera qui: vengono estratte le varie parti della data (giorno, mese e anno) e poi concatenate.
http://forums.asp.net/post/5194282.aspx

Se vuoi il mio parere, però, dovresti ricorrere a questo metodo solo se non hai la possibilità di formattare la data DOPO che è stata recuperata dal database.
Tendenzialmente, lascerei che il database mi restituisse una data, e poi l'andrei a formattare nella view, cioè nella schermata che presenta i dati all'utente. Sia che tu stia scrivendo un'applicazione per web o per Windows, infatti, è probabile che il meccanismo di binding che stai usando ti offra un modo per decidere coma va formattata la data.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.