私は現在作業中の新しいプロジェクトのためにEntity Framework 7とASP.NET 5で遊んでいますが、障害にぶつかりました。私が取り組んでいるチームは、開発にDBAファーストのアプローチを使用しています。つまり、データベースはDBAによって設計され、開発者はコードを変更してモデルの変更を補正します。
EF6を使用すると、EDMXデザイナーの「更新」機能を使用してコードを更新するだけなので、これはうまく機能します。ワンクリックで、新しいクラスを取得できました。ただし、EF7では、すべてが異なります。デザイナーはもういません。EFチームによるいくつかのブログ投稿によると、「データベースファースト」コード生成もサポートするはずのコードファーストを使用することになっています。
ただし、ASP.NET 5アプリケーションでVisual Studio 2015 CTP6を使用してこれを行う方法を理解することはできません。ツールのサポートはまだありますか、それとも運が悪いのですか?そして、それもまったく来ていますか?
最新のビットでは、dnxコマンドのPromptおよびPowerShellコマンドを使用してこれを行うことができます、はい
Scaffold-DbContext '<connectionString>' EntityFramework.MicrosoftSqlServer
または
dnx ef dbcontext scaffold "<connectionString>" EntityFramework.MicrosoftSqlServer
または(EF Core RC2から)
dotnet ef dbcontext scaffold "<connectionString>" Microsoft.EntityFrameworkCore.SqlServer
コマンドを機能させるには、Microsoft.EntityFrameworkCore.Tools
パッケージをインストールする必要があります。
これは、NuGetパッケージマネージャーコンソールまたはコマンドプロンプトを使用して実行できます。コマンドプロンプトで試しました。コマンドプロンプトでプロジェクトフォルダーに移動した後、同様のコマンドを使用しました。
dnx ef dbcontext scaffold "Data Source=myServerName; Initial Catalog=myDatabaseName; Integrated Security=True" EntityFramework.SqlServer
不足しているパッケージに関するエラーが発生しました:
EntityFramework.Commands
EntityFramework.SqlServer.Design
次に進む前に、このコマンドが続きます。
dnu restore
必要な実際のパッケージは、記載されているフレームワークproject.jsonファイルによって異なる場合があります。
コマンドプロンプトでdnxまたはその他の関連コマンドを実行できない場合は、別の回答のコメントで言及されている [〜#〜] this [〜#〜] リンクに従ってください。
P.S。:現在のコマンドリストは次のとおりです[執筆時点、最終更新日8月21日]:
.NET CoreのRC2の更新されたパラメーターは次のとおりです(2016年5月)
dotnet ef dbcontext scaffold -c RRStoreContext -o Model
"Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True"
Microsoft.EntityFrameworkCore.SqlServer --force
Microsoft.EntityFrameworkCore.SqlServer
は、コマンドで使用する必要があるパッケージの新しい名前であることに注意してください。既存のファイルを上書きするforce
パラメーターを追加しました。 「o」パラメータは出力ディレクトリ名です。そして、今ではdotnet
の代わりにdnx
です。
現在のリリースでは、project.json
に必要な依存関係は
"dependencies": {
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Tools": {
"type": "build",
"version": "1.0.0-preview1-final"
}
},
注:「ビルド」のタイプは、アセンブリを参照するものは、ツールにのみ必要なため、これを依存関係としてDLLと見なしません。