无法获取DbContext的reflection类型

在ASP Core 2.0 VS 2017中搭建控制器时,我得到以下内容:

无法获取DbContext的reflection类型:

微软.VisualStudio.Web.CodeGeneration.ActionInvoker.Execute(String [ ] args)at Microsoft.VisualStudio.Web.CodeGeneration.CodeGenCommand.Execute(String [] args)

这突然发生了,一个运行相同代码的同事没有遇到这个问题,我尝试了干净的构建,删除了每个项目中的bin和obj文件夹,删除了数据库,但我似乎无法解决这个问题,非常感谢任何帮助。

模型:

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

当我使用新的C#7function( 表达身体成员和Throw表达式 )时,我也遇到了这个问题,但是通过用C#6中的等效替换我的代码,它不再给我那个错误了。 尝试在没有任何C#7新function的情况下测试您的项目,可能它应该可以正常工作。 我不确定是什么原因,但我认为脚手架所依赖的Roslyn软件包还不支持C#7的新function。

作为让脚手架与C#7一起工作的一种解决方法,我认为你可以通过以下方式实现:

  1. 安装(或更新)NuGet包Microsoft.CodeAnalysis.CSharp.Workspaces 2.0.0或更高版本
  2. 然后再次重试脚手架