3

を見つけ、ここに私のcsprojです:ない実行ファイルは、私がVSコードとASP.NETコアMVCを使用してMac上でプロジェクトを開始し、一致するコマンド "DOTNET-EF"(Csproj)

<ItemGroup> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.0" /> 

    <PackageReference Include="System.Data.SqlClient" Version="4.3.0" /> 

    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> 
    </ItemGroup> 

私はいつもません「を取得実行可能なコマンド "dotnet-ef"を見つけました。

Windows 10で試したところ、同じ結果が得られました。

私には何が欠けていますか?

+0

1に反映する必要があります使用されますASP.NET Coreと.NET Coreを同じ意味で使用しないでください。それらは完全に異なるものを表します – Tseng

+0

[#37276882](https://stackoverflow.com/a/45765523/1233379)の可能な複製:簡単に言えば、プロジェクト構成ファイルを手動で編集し、ツールへの参照を追加する必要があります/ Tools.DotNetパッケージ(VS2015/VS2017は自動的にそれを行いません)。詳細については、[こちらを読む](http://www.ryadel.com/en/no-executable-found-matching-command-dotnet-ef-error-in-visual-studio-2017-and-net-core) -2-vs2017-エンティティフレームワーク/)。 – Darkseal

+0

また、現在のパスがプロジェクトのルートフォルダであることを確認してください。プロジェクトのフォルダを作成した場合、これは予想より深いレベルになる可能性があります。 – Peter

答えて

10

追加このそれを動作させるために:csprojファイルを含むフォルダの内側から

<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version = "1.0.0"/> 
    </ItemGroup> 
2
  1. 、csprojファイルに以下を追加します。

    <PropertyGroup> 
        <TargetFramework>netcoreapp2.0</TargetFramework> 
        <RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion> 
    </PropertyGroup> 
    
    <ItemGroup> 
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    </ItemGroup> 
    
  2. は今すぐ必要が含ま次のコマンドを実行することによって、依存関係を削除します。

    dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools.DotNet

  3. 表示される必要があり、すべての依存関係はすべてがOKに行ったことを確認するために dotnet restore

  4. 時にチェックされるように、基本的なdotnet efコマンドの使用法と dotnet ef 画面を次のコマンドを実行します。プロジェクトを復元プロジェクトがまだ構築されている場合

  5. チェック: dotnet build

  6. 次のコマンドを使用して、データベースから足場を生成します。

dotnet ef dbcontext scaffold "Server=<your_server_address[,port_number]>;Initial Catalog=<your_db>;User Id=<your_user>;Password=<your_password>" Microsoft.EntityFrameworkCore.SqlServer -f -c YourDbContext -o Db --json

コマンドは、上記のデータベースを読み出して、あなたの足場POCOエンティティクラスとdbcontextファイルを生成するための責任を負うものとして説明することができます。これは基本的な作業接続文字列を必要とし、パラメータfは上書きを強制し、cはコンテキストに名前を与え、oは出力フォルダと作成されたクラスの名前空間を決定し、jsonパラメータはコマンド結果をゼロスタウト。

手元にこのコマンドを維持するためにいいです、それはデータベースからいつでも変更がタイトル2.ドンにタグを強制しないでくださいORM