2016-07-26 9 views
0

にプロジェクトにインストールされていませんDBコンテキスト、エンティティなどが別の.NETコアクラスライブラリ内に存在するようにしたいと思います。「Microsoft.EntityFrameworkCore.Toolsは」私はここに記載されているチュートリアル以下のよ足場-DbContext

ライブラリproject.jsonファイルを更新して、 'netcoreapp1.0'フレームワークを組み込むことで、初期の互換性の問題を回避できました。

project.json

、BEFORE:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
     "netstandard1.6": { 
      "imports": "dnxcore50" 
     } 
    } 
} 

AFTER:

{ 
    "version": "1.0.0-*", 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "portable-net451+win8" ], 
     "buildOptions": { 
     "emitEntryPoint": true 
     }, 

     "dependencies": { 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
     "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0", 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0-*" 
     }, 
     "Microsoft.EntityFrameworkCore": "1.0.0-*", 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
     }, 
     "tools": { 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
     } 
    }, 
    "netstandard1.6": { 
     "imports": "dnxcore50", 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    } 
} 

チュートリアルをするためにそれを言うことを続く '逆エンジニアあなたのモデル' は、次のコマンドパッケージマネージャコンソール内で実行する必要があります。

DBは、クラスライブラリの名前です

Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'src\DB'. Add 'Microsoft.EntityFrameworkCore.Tools' to the 'tools' section in project.json. See http://go.microsoft.com/fwlink/?LinkId=798221 for more details. 

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 

は、私は、次のエラーメッセージが表示されます。

ツールセクションでMicrosoft.EntityFrameworkCore.Toolsが明確にわかります。だから私はどのように進めるか分からない。

+0

動作するはずです。フレームワーク内のスキーマにはツールセクションはありません。 – Tseng

答えて

1

project.json schemaに定義されている「フレームワーク」セクション内にツールセクションはありません。

この1つはあなたのプロジェクトのJSONが無効思わ正しく

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0", 
    "Microsoft.EntityFrameworkCore": "1.0.0-*", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
    }, 
    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "portable-net451+win8" ], 
     "buildOptions": { 
     "emitEntryPoint": true 
     }, 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0-*" 
     } 
     } 
    }, 
    "netstandard1.6": { 
     "imports": "dnxcore50", 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    } 
} 
+0

のトップレベルのみです。次のエラーメッセージは、クラスライブラリを 'スタートアップ'プロジェクトとして設定するように指示していました。これを実行した後、Scaffold-DbContextコマンドは失敗します。「プログラムにエントリポイントに適した静的な「Main」メソッドが含まれていないため」 – Robodude

+0

次の論理的なステップに進み、メインメソッドを追加しました。次のメッセージが表示されます。このプレビューのEntity Frameworkツールは、ASP.NET Coreおよび.NET Coreアプリケーションのクラスライブラリプロジェクトのコマンドをサポートしていません。詳細と回避策については、http://go.microsoft.com/fwlink/?LinkId = 798221を参照してください。 – Robodude

+0

あなたのnetstandard1.6セクションがまだそこにあるので – Tseng

関連する問題