Domanda

Quando si osserva un EntitySet<T> collegata di un LINQ to SQL mappato entità, vedo il seguente:

EntitySet vista debug

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:

alt text

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'interfaccia IQueryable.

Da quello che posso vedere, EntitySet<TEntity> non eredita da entrambi i IQueryableIQueryable<T>. Quindi, cosa succede con questa affermazione?

È stato utile?

Soluzione

Troverete la risposta a questa domanda

I risultati visualizzare solo lavori per collezioni che soddisfano i seguenti Condizioni

  1. Implementare IEnumerable o IEnumerable (VB.Net funziona solo per IEnumerable)
  2. Do non implementare IList, IList, ICollection o ICollection (C # restrizione solo)
  3. Do non avere un attributo DebuggerTypeProxy
  4. System.Core.dll viene caricato nel processo debugee

In particolare # 2, EntitySet implementa di IList , pertanto il debugger non mostrerà un "risultati Visualizza" l'opzione.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top