Classe DbSet

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Versione non generica di DbSet<TEntity> che può essere utilizzata quando il tipo di entità non è noto in fase di compilazione.

Gerarchia di ereditarietà

System.Object
  System.Data.Entity.Infrastructure.DbQuery
    System.Data.Entity.DbSet

Spazio dei nomi:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
<SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification := "Name is intentional")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")> _
Public MustInherit Class DbSet _
    Inherits DbQuery
'Utilizzo
Dim instance As DbSet
[SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")]
[SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
public abstract class DbSet : DbQuery
[SuppressMessageAttribute(L"Microsoft.Naming", L"CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = L"Name is intentional")]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1010:CollectionsShouldImplementGenericInterface")]
public ref class DbSet abstract : public DbQuery
[<AbstractClassAttribute>]
[<SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")>]
[<SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")>]
type DbSet =  
    class 
        inherit DbQuery 
    end
public abstract class DbSet extends DbQuery

Il tipo DbSet espone i seguenti membri.

Costruttori

  rapporti Descrizione
Metodo protetto DbSet Crea un'istanza di un oggetto DbSet quando chiamato dal costruttore di un tipo derivato che verrà usato come copia di test per il metodo DbSets.I metodi e le proprietà che verranno usati dalla copia di test devono essere implementati da quest'ultima, ad eccezione di AsNoTracking, AsStreaming e un'istruzione Include in cui l'implementazione predefinita non prevede alcuna operazione.

In alto

Proprietà

  rapporti Descrizione
Proprietà pubblica ElementType Tipo di elemento IQueryable. (Ereditato da DbQuery)
Proprietà pubblica Local Ottiene un oggetto ObservableCollection<T> che rappresenta una visualizzazione locale di tutte le entità Added, Unchanged e Modified in questo set.La visualizzazione locale viene sincronizzata man mano che le entità vengono aggiunte o rimosse dal contesto.Analogamente, le entità aggiunte o rimosse dalla visualizzazione locale verranno automaticamente aggiunte o rimosse dal contesto.

In alto

Metodi

  rapporti Descrizione
Metodo pubblico Add Aggiunge l'entità specificata al contesto sottostante il set nello stato Added in modo tale da essere inserita nel database quando viene chiamato SaveChanges.
Metodo pubblico AddRange Aggiunge la raccolta di entità specificata nel contesto sottostante il set con ciascuna entità nello stato Added in modo tale da consentirne l'inserimento nel database quando viene chiamato SaveChanges.
Metodo pubblico AsNoTracking Restituisce una nuova query in cui le entità restituite non verranno memorizzate nella cache dell'oggetto DbContext. (Ereditato da DbQuery)
Metodo pubblico AsStreaming Obsoleta. Restituisce una nuova query che trasmetterà come flusso e non come buffer i risultati. (Ereditato da DbQuery)
Metodo pubblico Attach Associa l'entità specificata al contesto sottostante il set,ovvero l'entità viene posizionata nel contesto nello stato Unchanged, come se fosse stata letta dal database.
Metodo pubblico Cast<TEntity> Restituisce l'oggetto DbSet<TEntity> generico equivalente.
Metodo pubblico Create() Crea una nuova istanza di un'entità per il tipo di questo set.Si noti che questa istanza NON viene aggiunta né collegata al set.L'istanza restituita sarà un proxy se il contesto sottostante è configurato per creare proxy e il tipo di entità soddisfa i requisiti per la creazione di un proxy.
Metodo pubblico Create(Type) Crea una nuova istanza di un'entità per il tipo di questo set o per un tipo derivato dal tipo di questo set.Si noti che questa istanza NON viene aggiunta né collegata al set.L'istanza restituita sarà un proxy se il contesto sottostante è configurato per creare proxy e il tipo di entità soddisfa i requisiti per la creazione di un proxy.
Metodo pubblico Equals Restituisce un valore che indica se il set specificato è uguale al set corrente. (Esegue l'override di DbQuery.Equals(Object)).
Metodo protetto Finalize (Ereditato da Object)
Metodo pubblico Find Consente di trovare un'entità con i valori della chiave primaria specificati.Se un'entità con i valori della chiave primaria specificati esiste nel contesto, verrà restituita immediatamente senza effettuare una richiesta all'archivio.In caso contrario, viene richiesta all'archivio un'entità con i valori della chiave primaria specificati. L'eventuale entità così trovata verrà associata al contesto e restituita.Se non viene trovata alcuna entità nel contesto né nell'archivio, viene restituito null.
Metodo pubblico FindAsync(Object[]) Consente di trovare in modo asincrono un'entità con i valori della chiave primaria specificati.Se un'entità con i valori della chiave primaria specificati esiste nel contesto, verrà restituita immediatamente senza effettuare una richiesta all'archivio.In caso contrario, viene richiesta all'archivio un'entità con i valori della chiave primaria specificati. L'eventuale entità così trovata verrà associata al contesto e restituita.Se non viene trovata alcuna entità nel contesto né nell'archivio, viene restituito null.
Metodo pubblico FindAsync(CancellationToken, Object[]) Consente di trovare in modo asincrono un'entità con i valori della chiave primaria specificati.Se un'entità con i valori della chiave primaria specificati esiste nel contesto, verrà restituita immediatamente senza effettuare una richiesta all'archivio.In caso contrario, viene richiesta all'archivio un'entità con i valori della chiave primaria specificati. L'eventuale entità così trovata verrà associata al contesto e restituita.Se non viene trovata alcuna entità nel contesto né nell'archivio, viene restituito null.
Metodo pubblico GetHashCode Restituisce la funzione hash per il set specificato. (Esegue l'override di DbQuery.GetHashCode()).
Metodo pubblico GetType Ottiene il tipo per il set corrente.
Metodo pubblico Include Specifica gli oggetti correlati da includere nei risultati della query. (Ereditato da DbQuery)
Metodo protetto MemberwiseClone (Ereditato da Object)
Metodo pubblico Remove Contrassegna l'entità specificata come Deleted in modo tale da essere eliminata dal database quando viene chiamato SaveChanges.Si noti che l'entità deve esistere nel contesto in un altro stato affinché venga chiamato questo metodo.
Metodo pubblico RemoveRange Rimuove la raccolta di entità specificata dal contesto sottostante il set con ciascuna entità nello stato Deleted in modo tale da consentirne l'eliminazione dal database quando viene chiamato SaveChanges.
Metodo pubblico SqlQuery Crea una query SQL non elaborata che restituirà le entità in questo set.Per impostazione predefinita, le entità restituite vengono rilevate dal contesto. Tale impostazione può essere modificata chiamando AsNoTracking nell'oggetto DbRawSqlQuery restituito.Si noti che le entità restituite sono sempre del tipo per questo set e mai di un tipo derivato.Se la tabella o le tabelle su cui è stata eseguita una query possono contenere dati per altri tipi di entità, è necessario che la query SQL venga scritta in modo appropriato per garantire che vengano restituite solo le entità del tipo corretto.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); in alternativa, è inoltre possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile utilizzare i parametri denominati nella stringa di query SQL.context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ToString Restituisce una rappresentazione String della query sottostante. (Ereditato da DbQuery)

In alto

Implementazioni esplicite dell'interfaccia

  rapporti Descrizione
Implementazione esplicita dell'interfacciaProprietà privata IListSource.ContainsListCollection Restituisce il valore false. (Ereditato da DbQuery)
Implementazione esplicita dell'interfacciaProprietà privata IQueryable.Expression Espressione LINQ IQueryable. (Ereditato da DbQuery)
Implementazione esplicita dell'interfacciaMetodo privato IEnumerable.GetEnumerator Restituisce un oggetto IEnumerator che, se enumerato, eseguirà la query nel database. (Ereditato da DbQuery)
Implementazione esplicita dell'interfacciaMetodo privato IListSource.GetList Genera un'eccezione che indica che l'associazione diretta a una query dell'archivio non è supportata.In alternativa, popolare un DbSet con dati, ad esempio tramite il metodo di estensione Load, quindi eseguire l'associazione ai dati locali.Per l'associazione WPF a DbSet.Local.Per Windows Form eseguire l'associazione a DbSet.Local.ToBindingList(). (Ereditato da DbQuery)
Implementazione esplicita dell'interfacciaProprietà privata IQueryable.Provider Provider IQueryable. (Ereditato da DbQuery)
Implementazione esplicita dell'interfacciaMetodo privato IDbAsyncEnumerable.GetAsyncEnumerator Restituisce un oggetto IDbAsyncEnumerator che, se enumerato, eseguirà la query nel database. (Ereditato da DbQuery)

In alto

Thread safety

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Vedere anche

Riferimento

Spazio dei nomi System.Data.Entity