web-dev-qa-db-ja.com

DbContextのリフレクションタイプを取得できませんでした

ASP Core 2.0 VS 2017でコントローラーを足場するとき、私は以下を取得します:

DbContextのリフレクションタイプを取得できませんでした:

BE.Data.ApplicationDbContext at Microsoft.VisualStudio.Web.CodeGeneration.ActionInvoker.b__6_0()at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String [] args)at Microsoft.VisualStudio.Web.CodeGeneration.ActionInvoker.Execute(String [ ] args)Microsoft.VisualStudio.Web.CodeGeneration.CodeGenCommand.Execute(String [] args)で

これは突然起こりました、そして同じコードを実行している同僚はこの問題を得ません、私はクリーンビルドを試み、各プロジェクトのbinとobjフォルダーを削除しました、dbを削除しましたが、それでもうまくいかないようです、どんな助けにも感謝します。

モデル:

public class SettingType : BaseModel
{
    public int SettingTypeId { get; set; }
    public string SettingTypeDescription { get; set; }
    public string SystemCode { get; set; }
}
13
David B

私もこの問題を抱えていました。新しいC#7機能( 式のボディメンバーとスロー式 )を使用していたときに、コードをC#6の同等のコードに置き換えると、エラーはもうありません。 C#7の新機能なしでプロジェクトをテストしてみてください。おそらく問題なく動作するはずです。理由はわかりませんが、足場が依存するRoslynパッケージはC#7の新機能をまだサポートしていません。

スキャフォールディングをC#7で機能させるための回避策として、次のことを実行できると思います。

  1. NuGetパッケージをインストール(または更新)Microsoft.CodeAnalysis.CSharp.Workspacesバージョン2.0.0以降
  2. そして、もう一度足場を再試行します
21
Salah Akbari

Scaffold-DbContextコマンドでEFモデルを生成すると警告が表示され、このエラーが発生します。その後、まずScaffold-DbContextの警告を修正すると、足場かみそりアイテムが正常に機能します。

1
Darío León