Share via


DbSet クラス

[このページは、Entity Framework 6 に関するページです。最新バージョンは、'Entity Framework' NuGet パッケージとして入手できます。Entity Framework の詳細については、msdn.com/data/ef を参照してください。]

非ジェネリック バージョンの DbSet<TEntity>。ビルド時にエンティティの型が不明な場合に使用できます。

継承階層

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

名前空間:  System.Data.Entity
アセンブリ:  EntityFramework (EntityFramework.dll 内)

構文

'宣言
<SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification := "Name is intentional")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")> _
Public MustInherit Class DbSet _
    Inherits DbQuery
'使用
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

DbSet 型で公開されるメンバーは以下のとおりです。

コンストラクター

  名前 説明
プロテクト メソッド DbSet DbSets のテスト ダブルとして使用される派生タイプのコンストラクタから呼び出された場合、DbSet のインスタンスを作成します。テスト ダブルで使用されるメソッドとプロパティは、AsNoTracking、AsStreaming、既定の実装では何も行わないインクルード以外のテスト ダブルで実装される必要があります。

上揃え

プロパティ

  名前 説明
パブリック プロパティ ElementType IQueryable 要素型。 (DbQuery から継承されます。)
パブリック プロパティ Local このセットのすべての Added エンティティ、Unchanged エンティティ、および Modified エンティティのローカル ビューを表す ObservableCollection<T> を取得します。このローカル ビューは、コンテキストでエンティティが追加または削除されたときに同期を維持します。同様に、ローカル ビューでエンティティが追加または削除されると、コンテキストでエンティティが自動的に追加または削除されます。

上揃え

メソッド

  名前 説明
パブリック メソッド Add 指定されたエンティティを、セットの基になるコンテキストに Added 状態で追加することにより、SaveChanges が呼び出されたときにデータベースに挿入されるようにします。
パブリック メソッド AddRange 特定のエンティティのコレクションを、各エンティティが Added 状態になり SaveChanges が呼び出されるとデータベースに挿入されるようにして、セットの基になるコンテキストに追加します。
パブリック メソッド AsNoTracking 返されたエンティティが DbContext にキャッシュされない新しいクエリを返します。 (DbQuery から継承されます。)
パブリック メソッド AsStreaming 互換性のために残されています。 バッファリングの代わりに結果をストリームする新しいクエリを返します。 (DbQuery から継承されます。)
パブリック メソッド Attach セットの基になるコンテキストに、指定されたエンティティをアタッチします。つまり、エンティティはデータベースから読み取られた場合と同様に、Unchanged 状態のコンテキストに配置されます。
パブリック メソッド Cast<TEntity> 同等のジェネリック DbSet<TEntity> オブジェクトを返します。
パブリック メソッド Create() このセットの型に対するエンティティの新しいインスタンスを作成します。このインスタンスは、セットに追加またはアタッチされないということに注意してください。基になるコンテキストがプロキシを作成するように設定され、エンティティ型がプロキシ作成の要件を満たしている場合、インスタンスとしてプロキシが返されます。
パブリック メソッド Create(Type) このセットの型に対して、またはこのセットの型から派生する型に対して、エンティティの新しいインスタンスを作成します。このインスタンスは、セットに追加またはアタッチされないということに注意してください。基になるコンテキストがプロキシを作成するように設定され、エンティティ型がプロキシ作成の要件を満たしている場合、インスタンスとしてプロキシが返されます。
パブリック メソッド Equals 指定されたセットが現在のセットに等しいかどうかを示す値を返します。 (DbQuery.Equals(Object) をオーバーライドします。)
プロテクト メソッド Finalize (Object から継承されます。)
パブリック メソッド Find 指定された主キー値を持つエンティティを検索します。指定された主キー値を持つエンティティがコンテキスト内に存在する場合は、そのエンティティがすぐに返され、ストアへの要求は行われません。それ以外の場合は、指定された主キー値を持つエンティティについてストアに要求が行われ、エンティティが見つかるとコンテキストにアタッチされて返されます。コンテキスト内またはストア内にエンティティが見つからない場合は null が返されます。
パブリック メソッド FindAsync(Object[]) 指定された主キー値を持つエンティティを非同期で検索します。指定された主キー値を持つエンティティがコンテキスト内に存在する場合は、そのエンティティがすぐに返され、ストアへの要求は行われません。それ以外の場合は、指定された主キー値を持つエンティティについてストアに要求が行われ、エンティティが見つかるとコンテキストにアタッチされて返されます。コンテキスト内またはストア内にエンティティが見つからない場合は null が返されます。
パブリック メソッド FindAsync(CancellationToken, Object[]) 指定された主キー値を持つエンティティを非同期で検索します。指定された主キー値を持つエンティティがコンテキスト内に存在する場合は、そのエンティティがすぐに返され、ストアへの要求は行われません。それ以外の場合は、指定された主キー値を持つエンティティについてストアに要求が行われ、エンティティが見つかるとコンテキストにアタッチされて返されます。コンテキスト内またはストア内にエンティティが見つからない場合は null が返されます。
パブリック メソッド GetHashCode 指定されたセットのハッシュ関数を返します。 (DbQuery.GetHashCode() をオーバーライドします。)
パブリック メソッド GetType 現在のセットの型を取得します。
パブリック メソッド Include クエリ結果に含める関連オブジェクトを指定します。 (DbQuery から継承されます。)
プロテクト メソッド MemberwiseClone (Object から継承されます。)
パブリック メソッド Remove 指定されたエンティティを Deleted としてマークすることにより、SaveChanges が呼び出されたときにデータベースから削除されるようにします。エンティティは、このメソッドが呼び出される前に、その他の状態でコンテキスト内に存在する必要があります。
パブリック メソッド RemoveRange 特定のエンティティのコレクションを、各エンティティが Deleted 状態になり SaveChanges が呼び出されるとデータベースから削除されるようにして、セットの基になるコンテキストから削除します。
パブリック メソッド SqlQuery このセットにエンティティを返す生の SQL クエリを作成します。既定では、返されたエンティティは、コンテキストによって追跡されます。この動作は、返された DbRawSqlQuery で AsNoTracking を呼び出して変更できます。返されるエンティティの型は常にこのセットの型であって、派生型ではないという点に注意してください。照会先の 1 つまたは複数のテーブルにその他のエンティティ型のデータが格納されている場合、正しい型のエンティティだけが返されるように、適切に SQL クエリを作成する必要があります。SQL を受け入れる API と同様に、すべてのユーザー入力をパラメーター化して、SQL インジェクション攻撃から保護することが重要です。パラメーターのプレースホルダーを SQL クエリ文字列に含めて、パラメーター値を追加の引数として指定することができます。指定したパラメーター値はすべて、DbParameter に自動的に変換されます。context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); または、DbParameter を構築して SqlQuery に指定することもできます。これにより、SQL クエリ文字列で名前付きパラメーターを使用できます。context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
パブリック メソッド ToString 基になっているクエリの String 表記を返します。 (DbQuery から継承されます。)

上揃え

明示的なインターフェイスの実装  

  名前 説明
明示的なインターフェイス実装プライベート プロパティ IListSource.ContainsListCollection false を返します。 (DbQuery から継承されます。)
明示的なインターフェイス実装プライベート プロパティ IQueryable.Expression IQueryable LINQ 式。 (DbQuery から継承されます。)
明示的なインターフェイス実装プライベート メソッド IEnumerable.GetEnumerator 列挙されたときにデータベースに対してクエリを実行する IEnumerator を返します。 (DbQuery から継承されます。)
明示的なインターフェイス実装プライベート メソッド IListSource.GetList 例外をスローして、ストア クエリに直接バインドできないことを示します。代わりに、Load 拡張メソッドなどを使用して DbSet にデータを挿入してから、ローカル データにバインドします。WPF では、DbSet.Local にバインドします。Windows Forms では、DbSet.Local.ToBindingList() にバインドします。 (DbQuery から継承されます。)
明示的なインターフェイス実装プライベート プロパティ IQueryable.Provider IQueryable プロバイダー。 (DbQuery から継承されます。)
明示的なインターフェイス実装プライベート メソッド IDbAsyncEnumerable.GetAsyncEnumerator 列挙されたときにデータベースに対してクエリを実行する IDbAsyncEnumerator を返します。 (DbQuery から継承されます。)

上揃え

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

参照

System.Data.Entity 名前空間