Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C#]DbSet, eseguire le query con la Reflection

    Buongiorno a tutti, usando:

    codice:
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    Vorrei invocare delle query in automatico avendo il nome della proprietà del DbSet e i metodi, ad esempio ToList()...

    Idee o esempi?

    Questo si rende necessario per non fare 1000 case/if in caso di molte query.
    Ultima modifica di jabjoint; 09-05-2023 a 11:03
    jabjoint

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Vorrei invocare delle query in automatico avendo il nome della proprietà del DbSet e i metodi, ad esempio ToList()...
    Idee o esempi?
    A giudicare dalla storia delle ultime discussioni recenti che hai aperto, direi che devi migliorare notevolmente la chiarezza con cui esponi i tuoi quesiti, poiché richiedono puntualmente delle domande di approfondimento per capire di cosa si sta parlando, domande che poi non ricevono nemmeno risposta.

    Cosa vuol dire "invocare delle query in automatico"?
    Se si volesse interpretare in modo letterale, si potrebbe pensare a una schedulazione periodica di query da eseguire, ma non credo si tratti di questo.

    Cosa vuol dire "avendo il nome della proprietà del DbSet e i metodi..."?
    Il DbSet è una classe che ha molte proprietà e diversi metodi, di cui peraltro ToList() fa parte solo perché ereditato e orientato a creare una lista dei risultati, ma non si comprende come arrivare a questo punto.

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Questo si rende necessario per non fare 1000 case/if in caso di molte query.
    Dando per scontato che il framework non legge il pensiero, qualunque cosa andrà debitamente codificata.

    Quello che si può fare per ottimizzare un aspetto dipende da qual è la necessità.

    Chiarisci meglio quello che intendi e cerca di farlo dal principio anche per le prossime discussioni.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Quote Originariamente inviata da alka Visualizza il messaggio
    A giudicare dalla storia delle ultime discussioni recenti che hai aperto, direi che devi migliorare notevolmente la chiarezza con cui esponi i tuoi quesiti, poiché richiedono puntualmente delle domande di approfondimento per capire di cosa si sta parlando, domande che poi non ricevono nemmeno risposta.

    Cosa vuol dire "invocare delle query in automatico"?
    Se si volesse interpretare in modo letterale, si potrebbe pensare a una schedulazione periodica di query da eseguire, ma non credo si tratti di questo.

    Cosa vuol dire "avendo il nome della proprietà del DbSet e i metodi..."?
    Il DbSet è una classe che ha molte proprietà e diversi metodi, di cui peraltro ToList() fa parte solo perché ereditato e orientato a creare una lista dei risultati, ma non si comprende come arrivare a questo punto.


    Dando per scontato che il framework non legge il pensiero, qualunque cosa andrà debitamente codificata.

    Quello che si può fare per ottimizzare un aspetto dipende da qual è la necessità.

    Chiarisci meglio quello che intendi e cerca di farlo dal principio anche per le prossime discussioni.
    Ciao,
    Per in automatico, non intendo nel tempo, ma senza definire la classe da usare da parte del programmatore a livello di codice.

    Accedendo alla classe che contiene le entità ad esempio:

    codice:
    public partial class ClassDataEntities : DbContext 
    {
    ...
    }
    E che contiene le liste di classi per l'accesso alle query:
    codice:
    public DbSet<Articoli> Articoli { get; set; }
    Dovrei ottenere ad esempio gli Articoli tramite il metoto ToList().

    Però potrei in un secondo momento ottenere la lista degli Ordini....

    Quindi devo usare la libreria Reflection.

    Tuttavia riesco solo ad ottenere la stringa/query e non la lista.

    Capisco che non sono chiaro a volte, ma è questione di tempo purtroppo...

    Ultima modifica di jabjoint; 09-05-2023 a 11:52
    jabjoint

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Dovrei ottenere ad esempio gli Articoli tramite il metoto ToList().
    Però potrei in un secondo momento ottenere la lista degli Ordini....
    Quindi devo usare la libreria Reflection.
    Semplicemente, farai riferimento a Ordini invece che ad Articoli.
    Non vedo il problema.
    La Reflection in questo caso non serve a nulla.

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Tuttavia riesco solo ad ottenere la stringa/query e non la lista.
    Di nuovo, la questione non è chiara, probabilmente perché viene espressa con il desiderata che si vorrebbe ottenere con una soluzione che è evidentemente sbagliata, senza esemplificare qual è la necessità che si sta cercando di risolvere, ovvero enunciando il problema, e non "denunciando" le mancanze di una soluzione che non è evidentemente quella corretta per risolverlo.

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Capisco che non sono chiaro a volte, ma è questione di tempo purtroppo...
    Buono a sapersi: in pratica, stai dicendo che non avendo tempo per spiegare i tuoi problemi, chi ti risponde nel suo tempo libero dovrebbe investirlo nel cercare di capirti perché tu non vuoi mettere il tuo nello spiegarti?

    Oltre a non essere proficuo (ma questa è una problematica che danneggia solo te), soprattutto non è affatto rispettoso nei confronti degli altri utenti del forum.

    Detto questo, tornando al punto, dopo aver già tentato di approfondire, ancora non si è capito niente.

    Se l'obiettivo è risparmiare tempo confidando che gli altri ti leggano nel pensiero, il problema rimarrà lì dov'è... ma in questo modo, lo stesso destino accadrà anche per ogni eventuale discussione futura, una volta che il meccanismo risulta chiaro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ma che diavolo c'entra il link di cui sopra?
    Questa discussione non ha alcun senso né utilità per nessuno.

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Non è un problema.
    Non so bene a cosa ti riferisci (ovviamente, perché è proprio quello il problema), comunque sia questa modalità di condurre discussioni (vedi anche la conclusione di questa) non è tollerabile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    non è un problema = tuttapposhto (*)

    (*) ho chiesto a ChatGPT di tradurre l'affermazione

  8. #8
    Ho parzialmente risolto, grazie per l'aiuto comunque!!!
    jabjoint

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ho parzialmente risolto, grazie per l'aiuto comunque!!!
    Ci fa piacere.

    Di solito, la discussione segue un filone logico e al raggiungimento della soluzione, questa viene indicata a beneficio di chiunque si trovi ad affrontare la stessa problematica in futuro.

    Qui non è chiaro il problema, lo svolgimento, e non c'è neanche la soluzione: lascio immaginare quale utilità può avere questo thread.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.