web-dev-qa-db-ja.com

EF Coreデータベースが最初の「dotnet-efに一致する実行可能ファイルが見つかりません」エラー

ご存知のように、Visual Studio 2017の最新バージョンは 'project.json'を破棄し、代わりに.csprojを使用します。

RTMバージョンを使用していて、既存のデータベースからモデルを生成したい このガイド に従います。最後のステップでエラーが発生しました:

パッケージマネージャーコンソールのEntity Framework Coreコマンドは、csprojベースの.NET Coreプロジェクトをまだサポートしていません。代わりに.NETコマンドラインツール(つまり、dotnet ef)を使用してください。詳細については、 https://go.Microsoft.com/fwlink/?linkid=834381 を参照してください。

エラーに続いて、記載されているリンクを使用してdotnet efに切り替えました。これが私のパッケージマネージャーコマンドです:

PM> dotnet ef dbcontext scaffold "Server = .; Database = Jumpstart; Trusted_Connection = True;" Microsoft.EntityFrameworkCore.SqlServer

次に、エラーが再び発生します。

dotnet:コマンド「dotnet-ef」に一致する実行可能ファイルが見つかりません

ヘルプコマンドを使用しましたが、dotnetにefというコマンドがないことがわかりました。

既存のデータベースからモデルを生成したいだけです。

16
even

このチュートリアルに従ってください

https://docs.Microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

私も同じ問題を抱えていました。 。csprojのItemGroupセクションを次のように編集しました

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
19
PROTOCOL

受け入れられた回答がエラーメッセージの最も可能性の高い原因です。ただし、.csprojファイル内に適切な参照を追加する以外にPackage Manager Consoleからの現在のディレクトリがASP.NET Coreプロジェクトを指していることを確認してください、それ以外の場合はdotnet efコマンドOPタイトルに記載されているエラーで失敗します。

5
Alexei

私の問題はtoolsを次のように変更することで解決しました:

"tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
  },

次に、次の2つのコマンドを実行します。

  1. dotnet restore-パッケージを復元する
  2. dotnet efの移行
3
etrupja

私は問題を解決しました

すべての回答で、ツールDotNetの追加について言及しましたが、以下で言及するいくつかのコマンドを逃したため、問題は解決しません

EF Core .NETコマンドラインツールは、*。csprojファイルを手動で編集してインストールします。

Microsoft.EntityFrameworkCore.Tools.DotNetをDotNetCliToolReferenceとして追加します。以下のサンプルプロジェクトを参照してください。

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>

コアバージョン2ではバージョンが変更されましたが、その後2つのコマンドも実行されるはずです

次に、すべての回答のimportatn部分が欠落しています(このコマンドは、Visual Studio 2017で私の問題を解決しました)

1-実行dotnet add package Microsoft.EntityFrameworkCore.Design

2-実行dotnet restore。復元が成功しない場合は、ツールが正しくインストールされていない可能性があります。

詳細情報 https://docs.Microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet

2

NetCore 2.0では、Add-Migrationsを実行するだけです。

名前を尋ねるだけです。 appsettings.jsonにデフォルトの接続文字列があることを確認してください

0