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 | |
---|---|---|
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 | |
---|---|---|
ElementType | Tipo di elemento IQueryable. (Ereditato da DbQuery) | |
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 | |
---|---|---|
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. | |
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. | |
AsNoTracking | Restituisce una nuova query in cui le entità restituite non verranno memorizzate nella cache dell'oggetto DbContext. (Ereditato da DbQuery) | |
AsStreaming | Obsoleta. Restituisce una nuova query che trasmetterà come flusso e non come buffer i risultati. (Ereditato da DbQuery) | |
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. | |
Cast<TEntity> | Restituisce l'oggetto DbSet<TEntity> generico equivalente. | |
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. | |
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. | |
Equals | Restituisce un valore che indica se il set specificato è uguale al set corrente. (Esegue l'override di DbQuery.Equals(Object)). | |
Finalize | (Ereditato da Object) | |
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. | |
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. | |
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. | |
GetHashCode | Restituisce la funzione hash per il set specificato. (Esegue l'override di DbQuery.GetHashCode()). | |
GetType | Ottiene il tipo per il set corrente. | |
Include | Specifica gli oggetti correlati da includere nei risultati della query. (Ereditato da DbQuery) | |
MemberwiseClone | (Ereditato da Object) | |
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. | |
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. | |
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)); | |
ToString | Restituisce una rappresentazione String della query sottostante. (Ereditato da DbQuery) |
In alto
Implementazioni esplicite dell'interfaccia
rapporti | Descrizione | |
---|---|---|
IListSource.ContainsListCollection | Restituisce il valore false. (Ereditato da DbQuery) | |
IQueryable.Expression | Espressione LINQ IQueryable. (Ereditato da DbQuery) | |
IEnumerable.GetEnumerator | Restituisce un oggetto IEnumerator che, se enumerato, eseguirà la query nel database. (Ereditato da DbQuery) | |
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) | |
IQueryable.Provider | Provider IQueryable. (Ereditato da DbQuery) | |
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.