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) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。