39 messaggi dal 19 settembre 2005
Ciao ragazzi, chiedo gentilmente un vostro prezioso aiuto:

Ho due tabelle
Prima tabella: USERPROFILE che ha una proprietà Data_inserimento
Seconda tabella: OPZIONI_USER che è in relazione con la prima tramite alla chiave USERID e che ha una proprietà Data_Ordinamento

Ora io avrei bisogno di generare una lista di USERPROFILE ordinati in base all'unione delle due propietà, Data_inserimento è Data_Ordinamento, ma non utilizzando Orderby e ThenOrderby ma proprio confrontando le due date.

Cioè se un USERPROFILE ha sia una Data_Inserimento che una Data_Ordinamento, per il confronto deve utilizzare il valore più alto(più vicino ad oggi)

Quindi come scrivo?
Var elenco = db.userprofile.Where(user => user.OpzioniUsers.Any(opzione => opzione.Attivo == true).OrderBy ......

Grazie infinite in anticipo
175 messaggi dal 02 gennaio 2012
Hi,

con un DB sql server puoi fare

SELECT
*
, CASE
WHEN DATA_1 >= DATA_2 THEN DATA_1
ELSE DATA_2
END AS Data
FROM tabella

bye ghg
Modificato da ghg il 01 giugno 2015 19.27 -
39 messaggi dal 19 settembre 2005
grazie, ma in linQ come posso tradurlo?
39 messaggi dal 19 settembre 2005
Ho provato a fare cosi' ma ricevo un errore:

OrderByDescending(item => Math.Max(item.Data_Inizio.Ticks, item.OpzioniUsers.FirstOrDefault(opzione => opzione.Attivo).Data_Ordinamento.Value.Ticks));

l'errore che ricevo è:
LINQ to Entities does not recognize the method 'Int64 Max(Int64, Int64)' method, and this method cannot be translated into a store expression.

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.