EFCore コンソールアプリ
Entity Framework Core のインストール
.NET core コンソールアプリからEntity Framework Core 環境をインストールおよび設定します。Visual Studio でPackage Manager Console を使用して、適切なバージョンのEF Core をインストールします。最新バージョンのEF Core を自動的にダウンロードしてインストールするには、まず次のコマンドを実行します。
Install-Package Microsoft.EntityFrameworkCore
さらに、次の例に示すように、EF Core のRelational アセンブリをインストールする必要があります。
Install-Package Microsoft.EntityFrameworkCore.Relational
EF Core 2.1 バージョンのアセンブリを使用している場合は、EF Core の古いバージョンを指定する必要があります。EF Core 2.1 をインストールするには、各コマンドの最後にバージョンタグを追加します。
Install-Package Microsoft.EntityFrameworkCore -Version 2.1.14 Install-Package Microsoft.EntityFrameworkCore.Relational -Version 2.1.14
同じ情報がEF Core 2.0 アセンブリにも適用されます。
Entity Framework Core プロバイダーの登録
Entity Framework Core プロバイダーを登録するには、次の手順を実行してください。
Note:EF Core 3.0 は、いくつかのファイルをEF Core 2.1 と共有します。
- System.Data.CData.QueryFederation.dll への参照を追加します。これは、インストールディレクトリのlib -> netstandard2.0サブフォルダ内にあります。
- CData.EntityFrameworkCore.QueryFederation.dll への参照を追加します。EF Core 3.0の場合、これはインストールディレクトリのlib -> netstandard2.1 -> EFCORE30サブフォルダ内にあります。EF Core 2.1の場合、これはlib -> netstandard2.0 -> EFCORE21サブフォルダ内にあります。
- 付属のライセンスファイル(.lic)をプロジェクトに追加します。これは、[ソリューション エクスプローラー]のプロジェクトを右クリックして[Add]->[Existing Item]->[System.Data.CData.QueryFederation.lic](lib -> netstandard2.0サブフォルダ内にあります)に進むことで行えます。最後に、ライセンスファイルを右クリックし、Copy to Output Directory をCopy if newer に設定します。
- プロジェクトをビルドして、EF Core を使用するための設定を完了します。
データモデルの作成
アプリケーションのコンテキストクラスとエンティティクラスを作成するには、2つのアプローチがあります。コードファーストアプローチ アプローチでは、クラスを手動で書くことでモデルを微調整できます。あるいは、リバースエンジニアリング(Scaffolding) を利用して連合データベーススキーマからこれらのクラスを自動生成することもできます。
コードでLINQ コマンドを実行する
これで、コードでLINQ を使用する準備が整いました。ファイルで必ず"using System.Linq" を宣言してください。
QueryFederationContext ents = new QueryFederationContext();
var [MySQLCatalog].[MySQLSchema].BooksQuery = from [MySQLCatalog].[MySQLSchema].Books in ents.[MySQLCatalog].[MySQLSchema].Books
orderby [MySQLCatalog].[MySQLSchema].Books.Author
select [MySQLCatalog].[MySQLSchema].Books;
データモデルの作成
アプリケーションのコンテキストクラスとエンティティクラスを作成するには、2つのアプローチがあります。コードファーストアプローチ アプローチでは、クラスを手動で書くことでモデルを微調整できます。あるいは、リバースエンジニアリング(Scaffolding) を利用してQuery Federation スキーマからこれらのクラスを自動生成することもできます。
コードでLINQ コマンドを実行する
Entity Framework Core をセットアップしてQuery Federation プロバイダーを登録すると、コード内でLINQ を実行することができます。
using System.Linq;
using MySolutionName.Models;
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); // Include this if you would like to use code pages not bundled in .NET Standard.
QueryFederationContext ents = new QueryFederationContext();
var BooksQuery = from Books in ents.Books
orderby Books.Author
select Books;