質問: EntityFrameworkCoreを.NET Standard 2.0プロジェクトに簡単にセットアップできるかどうかは疑問でした。私はこのチュートリアルに従っていましたが、.NET CoreまたはFrameworkが必要です。 私がこのステップに着いたとき: ``` Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models ``` 私はこのエラーがある: > スタートアッププロジェクト 'projectName'は、フレームワーク '.NETスタンダード'を対象としています。このフレームワークに関連付けられたランタイムはなく、それをターゲットとするプロジェクトは直接実行できません。このプロジェクトでEntity Frameworkコアパッケージマネージャコンソールツールを使用するには、このプロジェクトを参照する.NET Frameworkまたは.NET Coreを対象とする実行可能プロジェクトを追加し、スタートアッププロジェクトとして設定します。またはこのプロジェクトを.NET Frameworkまたは.NET Coreをターゲットとするように更新します。 > > .NET Standardでエンティティを設定できるかどうか、あるいは代わりにすべきベストプラクティスがあるかどうかは疑問です。
回答: > スタートアッププロジェクト「projectName」は、フレームワーク「.NETStandard」を対象としています。このフレームワークに関連付けられたランタイムはなく、それを対象とするプロジェクトを直接実行することはできません。このプロジェクトでEntity Framework Core Package Managerコンソールツールを使用するには、このプロジェクトを参照する.NET Frameworkまたは.NET Coreを対象とする実行可能プロジェクトを追加し、スタートアッププロジェクトとして設定します。または、このプロジェクトをクロスターゲット.NET Frameworkまたは.NET Coreに更新します。 > > エラーメッセージの意味は次のとおりです。 **実行可能な** .NET Standardプロジェクトなどはありません。それは単に複数の異なるランタイム用のタイプ転送メカニズムであるため、ランタイムはありません。 プログラミング用語では、これはインターフェイスをインスタンス化することに似ています 。実行する実装がないため、実行できません。 解決策は、アプリケーションを実行する**実行可能プラットフォーム**を選択することです。 (ランタイムと互換性がある限り)実行可能ファイルから好きなだけ多くの.NET標準ライブラリを参照できますが、実行可能ファイル自体を.NET標準で実行することはできません。実行するには、.NET Frameworkや.NET Coreなどのプラットフォームをターゲットにする必要があります。 つまり、コマンドを使用してデータベースをスキャフォールドするには、ランタイムをターゲットにする必要があります。したがって、メインの実行可能プロジェクトをターゲットにしながらこのコマンドを実行するか、実行する新しい実行可能プロジェクトをソリューションに追加する必要があります。 これは、オプション--startup-project = [Path_to_your_main_Project]を使用してCLIでコマンドを実行することで実行できます