16 messaggi dal 24 febbraio 2018
Ciao Moreno,
il tuo thread è stato chiarissimo e di grande aiuto, però la mia perplessità nasce, quando, facendo la prima query che riporto, durante il debug se mi posiziono col mouse sulla variabile result non trovo i dati(risultati della query), mentre sulla seconda query, sempre durante il debug se mi posiziono sulla variabile result2 senza mettere il .ToList() trovo i risultati. Come mai? Ti riporto per comodità anche il codice della classe AcquistiViewModel in calce. Grazie

var result = db.Clienti.SelectMany(parcli => parcli.Acquisti, (cli, acq) =>
new { idcliente = cli.IdCliente,
idacquisti = acq.IdAcquisto,
nomecliente = cli.Nomecliente,
prezzo = acq.PrezzoperQuantita,
idprodotto = acq.Prodotti.IdProdotto,
nomeprodotto = acq.Prodotti.NomeProdotto
} ).ToList();



var result2 = AcquistiViewModel.GetAllAcquisti()
.Where(acq => acq.PrezzoperQuantita > 157)
.Select(acq => new {
ID = acq.IdAcquisto,
Prezzo = acq.PrezzoperQuantita,
Quantita = acq.Quantita,
PrezzoConOperazione = acq.PrezzoperQuantita * 2
});


public class AcquistiViewModel
{
public int IdAcquisto { get; set; }
public int Quantita { get; set; }
public int Prezzo { get; set; }

public List<string> Nomecliente { get; set; }

public virtual Clienti Clienti { get; set; }
public virtual Prodotti Prodotti { get; set; }


public Clienti Cliente { get; set; }

public static List<Acquisti> GetAllAcquisti()
{
List<Acquisti> listaAcquisti = new List<Acquisti>();
Database1Entities db = new Database1Entities();
{
listaAcquisti = db.Acquisti.ToList();
}

return (listaAcquisti);
}//END GetAllAcquisti

}//END Class AcquistiViewModel
10.966 messaggi dal 09 febbraio 2002
Contributi
Ciao,
la prima query LINQ è sintatticamente corretta. Se hai mappato bene le relazioni e se ci sono dati nel database, deve necessariamente restituirti dei risultati. Non essendo in possesso del tuo database, non posso fare verifiche.

Ovviamente, se hai messo il breakpoint in corrispondenza dell'istruzione "var result = ..." dovrai avanzare con F10 per dare modo alla query di andare in esecuzione. Dopodiché potrai vedere i risultati.

Anche la seconda query LINQ è corretta, in quanto estrae semplicemente le righe dalla collezione Acquisti. Personalmente non metterei un metodo di estrazione dati in un ViewModel ma questo è solo un mio punto di vista.

ciao,
Moreno
Modificato da BrightSoul il 30 marzo 2018 19.24 -

Enjoy learning and just keep making
16 messaggi dal 24 febbraio 2018
Ciao Moreno,
se in una view mi arriva una lista di Prodotti, come faccio dalla view ad inviarla ad una actionresult? Fino ad ora avevo mandato dalla view ad un action solo una riga, ma in questo caso ne ho + di 1....
grazie 1000

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.