Abbiamo un cliente molto grande tavolo con oltre colonne (so che qualcuno lo fa!)Seleziona colonne specifiche dal database utilizzando codice EF Prima
Molte di queste colonne sono infatti chiavi esterne ad altre tabelle.
Abbiamo anche il requisito di carico oneroso alcune delle tabelle correlate.
Esiste un modo in Linq to SQL o Linq dinamico per specificare quali colonne devono essere recuperate dal database? Sto cercando una dichiarazione LINQ che in realtà ha questo effetto sul conto SQL generato:
SELECT Id, Name FROM Book
Quando si esegue la query reguar generato da EF, SQL Server genera un errore che è stato raggiunto il numero massimo di colonne che può essere selezionato all'interno di una query !!!
Qualsiasi aiuto è molto apprezzato!
Sì, esattamente questo è il caso, la tabella contiene 500 colonne ed è di per sé fa riferimento il nostro strumento di carichi automaticamente ansiosi i primi rapporti di livello e questo colpisce il limite SQL sul numero di colonne che possono essere interrogati.
Speravo che posso impostato solo carico colonne limitate delle entità correlate, come Id e nome (che viene utilizzato nell'interfaccia utente per visualizzare il record per utente)
Credo che l'altra opzione è quella di controlla quali colonne FK dovrebbero essere caricate con entusiasmo. Tuttavia questo rimane ancora un problema per le tabelle che hanno una colonna binary o ntext che potresti non voler caricare tutte le volte.
C'è un modo per collegare più modelli (entità) alla stessa tabella in codice prima? Abbiamo provato a farlo penso che lo sforzo sia fallito miseramente.
Speravo ci fosse un modo più solido per specificare le colonne. In molti casi la nostra applicazione MVC è condivisa per più modelli e stiamo utilizzando linq dinamico per poter eseguire la stessa query per tabelle diverse. – sam360
Linq dinamico dovrebbe essere in grado di specificare anche la proiezione. EF è lo strumento per lavorare con le entità - l'entità è ciò che hai mappato = se hai mappato 500 colonne all'entità, la tua query senza proiezione restituirà sempre 500 colonne + colonne di tutte le relazioni caricate con interesse. –
Sì, esattamente questo è il caso, la tabella ha 500 colonne ed è autoreferenziale il nostro strumento carica automaticamente le relazioni di primo livello e questo colpisce il limite SQL sul numero di colonne che possono essere interrogate. Speravo di essere in grado di caricare solo colonne limitate delle entità correlate come Id e Nome (che viene utilizzato nell'interfaccia utente per visualizzare il record per l'utente) Immagino che l'altra opzione sia controllare quali colonne dovrebbero sii impaziente. Tuttavia questo rimane ancora un problema per le tabelle che hanno una colonna binary o ntext che potresti non voler caricare tutti i tiems – sam360