EF Core 1.0 に含まれる機能Features included in EF Core 1.0

プラットフォームPlatforms

.NET Framework 4.5.1.NET Framework 4.5.1

コンソール、WPF、WinForms、ASP.NET 4 などが含まれます。Includes Console, WPF, WinForms, ASP.NET 4, etc.

.NET Standard 1.3.NET Standard 1.3

.NET Framework と、Windows、OSX および Linux での .NET Core の両方を対象にした ASP.NET Core が含まれています。Including ASP.NET Core targeting both .NET Framework and .NET Core on Windows, OSX, and Linux.

モデリングModelling

基本モデリングBasic modelling

共通のスカラー型 (intstring など) の get/set プロパティを持つ POCO エンティティに基づいています。Based on POCO entities with get/set properties of common scalar types (int, string, etc.).

リレーションシップとナビゲーション プロパティRelationships and navigation properties

外部キーに基づく一対多、一対ゼロまたは一対一のリレーションシップをモデルに指定できます。One-to-many and One-to-zero-or-one relationships can be specified in the model based on a foreign key. 単純なコレクションまたは参照型のナビゲーション プロパティを、これらのリレーションシップに関連付けることができます。Navigation properties of simple collection or reference types can be associated with these relationships.

組み込みの規約Built-in conventions

組み込みの規約は、エンティティ クラスの構造に基づいて、初期モデルを作成します。These build an initial model based on the shape of the entity classes.

Fluent APIFluent API

使用するコンテキストの OnModelCreating メソッドをオーバーライドして、規約によって検出されたモデルをさらに構成できます。Allows you to override the OnModelCreating method on your context to further configure the model that was discovered by convention.

データの注釈Data annotations

エンティティのクラスやプロパティに追加できる属性で、EF モデルに影響を与えます。Are attributes that can be added to your entity classes/properties and will influence the EF model. たとえば [Required] を追加すると、プロパティが必須であることが EF に通知されます。For example, adding [Required] will let EF know that a property is required.

リレーショナル テーブルのマッピングRelational Table mapping

エンティティをテーブルや列にマップできます。Allows entities to be mapped to tables/columns.

キー値の生成Key value generation

クライアント側での生成と、データベースでの生成が含まれます。Including client-side generation and database generation.

データベースで生成される値Database generated values

データベースでの挿入 (既定値) や更新 (計算列) によって値を生成できます。Allows for values to be generated by the database on insert (default values) or update (computed columns).

SQL Server 内のシーケンスSequences in SQL Server

モデルにシーケンス オブジェクトを定義できます。Allows for sequence objects to be defined in the model.

UNIQUE 制約Unique constraints

代替キーを定義し、そのキーを対象とするリレーションシップを定義する機能を利用できます。Allows for the definition of alternate keys and the ability to define relationships that target that key.

インデックスIndexes

モデルにインデックスを定義すると、インデックスが自動的にデータベースに導入されます。Defining indexes in the model automatically introduces indexes in the database. 一意なインデックスもサポートされています。Unique indexes are also supported.

シャドウ状態プロパティShadow state properties

.NET クラスで宣言されておらず、このクラスに格納もされていないが、EF Core で追跡および更新できるプロパティをモデルに定義できます。Allows for properties to be defined in the model that are not declared and are not stored in the .NET class but can be tracked and updated by EF Core. オブジェクト内の外部キー プロパティを公開することが好ましくない場合に、外部キー プロパティの用途でよく使用されます。Commonly used for foreign key properties when exposing these in the object is not desired.

Table-per-Hierarchy 継承パターンTable-Per-Hierarchy inheritance pattern

データベース内の特定レコードのエンティティの種類を識別する識別子の列を使用して、継承階層内のエンティティを 1 つのテーブルに保存できます。Allows entities in an inheritance hierarchy to be saved to a single table using a discriminator column to identify they entity type for a given record in the database.

モデルの検証Model validation

モデル内の無効なパターンを検出し、有用なエラー メッセージを示します。Detects invalid patterns in the model and provides helpful error messages.

変更の追跡Change tracking

スナップショットによる変更の追跡Snapshot change tracking

現在の状態を元の状態のコピー (スナップショット) と比較することで、エンティティの変更を自動的に検出できます。Allows changes in entities to be detected automatically by comparing current state against a copy (snapshot) of the original state.

通知による変更の追跡Notification change tracking

プロパティの値が変更されると、エンティティから変更トラッカーに通知できます。Allows your entities to notify the change tracker when property values are modified.

追跡対象の状態へのアクセスAccessing tracked state

DbContext.EntryDbContext.ChangeTracker を使用します。Via DbContext.Entry and DbContext.ChangeTracker.

デタッチされたエンティティやグラフのアタッチAttaching detached entities/graphs

この新しい DbContext.AttachGraph API では、新しいまたは変更されたエンティティを保存するために、コンテキストにエンティティを再アタッチできます。The new DbContext.AttachGraph API helps re-attach entities to a context in order to save new/modified entities.

データの保存Saving data

基本の保存機能Basic save functionality

エンティティ インスタンスへの変更をデータベースに保存できます。Allows changes to entity instances to be persisted to the database.

オプティミスティック コンカレンシーOptimistic Concurrency

データベースからデータがフェッチされた後、別のユーザーが行った変更が上書きされないようにします。Protects against overwriting changes made by another user since data was fetched from the database.

非同期 SaveChangesAsync SaveChanges

データベースで SaveChanges から発行されたコマンドを処理している間に他の要求を処理できるように、現在のスレッドを解放できます。Can free up the current thread to process other requests while the database processes the commands issued from SaveChanges.

データベース トランザクションDatabase Transactions

SaveChanges が常にアトミックであることを示します。つまり、完全に成功するか、データベースが変更されないかどちらかです。Means that SaveChanges is always atomic (meaning it either completely succeeds, or no changes are made to the database). コンテキスト インスタンスなどの間でトランザクションを共有できる、トランザクションに関連した API もあります。There are also transaction related APIs to allow sharing transactions between context instances etc.

リレーショナル: ステートメントのバッチ処理Relational: Batching of statements

複数の INSERT/UPDATE/DELETE コマンドを 1 度のラウンドトリップでデータベースにバッチ更新することにより、パフォーマンスを向上させます。Provides better performance by batching up multiple INSERT/UPDATE/DELETE commands into a single roundtrip to the database.

クエリQuery

LINQ の基本的なサポートBasic LINQ support

LINQ を使用してデータベースからデータを取得する機能を提供します。Provides the ability to use LINQ to retrieve data from the database.

混合クライアント/サーバーの評価Mixed client/server evaluation

データベース内で評価できないためにデータをメモリに取得してから評価する必要のあるロジックをクエリに組み込むことができます。Enables queries to contain logic that cannot be evaluated in the database, and must therefore be evaluated after the data is retrieved into memory.

NoTrackingNoTracking

コンテキストでエンティティ インスタンスへの変更を監視する必要がない場合には、クエリをより速く実行できます (これは結果が読み取り専用である場合に便利です)。Queries enables quicker query execution when the context does not need to monitor for changes to the entity instances (this is useful if the results are read-only).

一括読み込みEager loading

クエリ実行時にフェッチも必要な関連データを識別する Include および ThenInclude メソッドを提供します。Provides the Include and ThenInclude methods to identify related data that should also be fetched when querying.

非同期クエリAsync query

データベースでクエリを処理している間に他の要求を処理できるように、現在のスレッド (とそれに関連するリソース) を解放できます。Can free up the current thread (and it's associated resources) to process other requests while the database processes the query.

生 SQL クエリRaw SQL queries

生 SQL クエリを使用してデータをフェッチする DbSet.FromSql メソッドを提供します。Provides the DbSet.FromSql method to use raw SQL queries to fetch data. これらのクエリは、LINQ を使用して構成することもできます。These queries can also be composed on using LINQ.

データベース スキーマの管理Database schema management

データベース作成/削除 APIDatabase creation/deletion APIs

これらの API の大半は、データベースを移行せずにすばやく作成または削除する必要のあるテスト向けに設計されています。Are mostly designed for testing where you want to quickly create/delete the database without using migrations.

リレーショナル データベースの移行Relational database migrations

リレーショナル データベース スキーマを、モデルの変化に合わせて長期間かけて進化させることができます。Allow a relational database schema to evolve overtime as your model changes.

データベースからのリバース エンジニアリングReverse engineer from database

既存のリレーショナル データベース スキーマに基づいて、EF モデルをスキャフォールディングします。Scaffolds an EF model based on an existing relational database schema.

データベース プロバイダーDatabase providers

SQL ServerSQL Server

Microsoft SQL Server 2008 以降に接続します。Connects to Microsoft SQL Server 2008 onwards.

SQLiteSQLite

SQLite 3 データベースに接続します。Connects to a SQLite 3 database.

インメモリIn-Memory

実際のデータベースに接続せずに簡単にテストできるように設計されています。Is designed to easily enable testing without connecting to a real database.

サード パーティ プロバイダー3rd party providers

他のデータベース エンジンで使用できるプロバイダーもあります。Several providers are available for other database engines. すべてのプロバイダーの一覧については、「Database Providers (データベース プロバイダー)」をご覧ください。See Database Providers for a complete list.