Dove è EntitySet 's ‘risultati Visualizza’?
-
11-10-2019 - |
Domanda
Quando si osserva un EntitySet<T>
collegata di un LINQ to SQL mappato entità, vedo il seguente:
Mi piacerebbe vedere la seguente (ottenuto utilizzando il metodo di estensione .AsQueryable()
) in modo che io possa fare clic sull'icona piccola di aggiornamento e vedere il contenuto:
Perché non posso vedere i risultati Visualizza in modo regolare EntitySet<T>
pianura?
Inoltre, ho notato che il questa pagina MSDN si dice:
In LINQ to SQL, gli attrezzi di classe
EntitySet<TEntity>
l'interfacciaIQueryable
.
Da quello che posso vedere, EntitySet<TEntity>
non eredita da entrambi i IQueryable
né IQueryable<T>
. Quindi, cosa succede con questa affermazione?
Soluzione
Troverete la risposta a questa domanda
I risultati visualizzare solo lavori per collezioni che soddisfano i seguenti Condizioni
- Implementare IEnumerable o IEnumerable (VB.Net funziona solo per IEnumerable)
- Do non implementare IList, IList, ICollection o ICollection (C # restrizione solo)
- Do non avere un attributo DebuggerTypeProxy
- System.Core.dll viene caricato nel processo debugee
In particolare # 2, EntitySet
Utilizzando il metodo di estensione AsQueryable restituisce un oggetto che implementa solo IQueryable e IEnumerable e quindi mostrerà i "risultati Visualizza" l'opzione.
Si può leggere di più sul 2 # nella risposta data nel altra questione.
Altri suggerimenti
La terminologia sulla pagina si fa riferimento può essere un po 'fuori -. Dal momento che sia EntitySet e IQueryable derivano da IEnumerable, se EntitySet implementato IQueryable direttamente quindi attuando IEnumerable sarebbe ridondante
Che AsQueryable () non fa altro che convertire l'EntitySet a un EnumerableQuery (come mostrato nella seconda immagine) - e solo dopo che la conversione è fatta possibile la visualizzazione dei risultati essere visto.
Dal EntitySet solo deriva dal IEnumerable, questo ha un senso -. Come enumeratori non restituiscono set, ma i riferimenti a singoli membri in un insieme, in un ordine sequenziale