无法获取 DbContext 的反射类型
Could not get the reflection type for DbContext
在 ASP Core 2.0 VS 2017 中构建控制器时,我得到以下信息:
Could not get the reflection type for 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) at
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; }
}
我也有这个问题,当我使用新的 C#7 功能 (expression bodied members and Throw expressions) 但通过用 C#6 中的等效代码替换我的代码时,它不再给我这个错误。尝试在没有任何 C#7 新功能的情况下测试您的项目,它应该可以正常工作。我不确定是什么原因,但我认为脚手架依赖的 Roslyn 包还不支持 C#7 新功能。
作为让脚手架与 C#7 一起工作的解决方法,我认为您可以通过执行以下操作:
- 安装(或更新)NuGet 包
Microsoft.CodeAnalysis.CSharp.Workspaces
2.0.0 版或更高版本
- 然后再次尝试搭建脚手架
当我通过 Scaffold-DbContext 命令生成 EF 模型时出现此错误,并且在完成时出现警告。然后首先我纠正了 Scaffold-DbContext 的警告,然后 scaffold razor items 工作正常。
尝试构建 scaffold-dbContext 时出现歧义。
我再次尝试搭建脚手架,但 dbcontext 上出现了错误。这是对一个术语的模糊使用。
解决错误列表中的这种歧义。它解决了问题。
这件事发生在我身上,只是需要在脚手架之后构建项目。 (是的,这是最基本的事情,但我忘记了哈哈)
我正在使用 visual studio 2019 和 .Net Core 3.1
我刚刚意识到我在代码中的某处使用了 unsafe { }
块。我临时注释了不安全的代码,我可以再次使用脚手架。
我对此有疑问。我与数据库的连接字符串包含语言特定符号(拉脱维亚语),我只是花了 2 个小时才弄明白。我通过将我的项目文件夹和数据库放在仅包含 ASCII 符号的目录中来修复它。
也许对某人有用。
在构建脚手架之前构建解决方案,它对我有用。
在 ASP Core 2.0 VS 2017 中构建控制器时,我得到以下信息:
Could not get the reflection type for 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) at 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; }
}
我也有这个问题,当我使用新的 C#7 功能 (expression bodied members and Throw expressions) 但通过用 C#6 中的等效代码替换我的代码时,它不再给我这个错误。尝试在没有任何 C#7 新功能的情况下测试您的项目,它应该可以正常工作。我不确定是什么原因,但我认为脚手架依赖的 Roslyn 包还不支持 C#7 新功能。
作为让脚手架与 C#7 一起工作的解决方法,我认为您可以通过执行以下操作:
- 安装(或更新)NuGet 包
Microsoft.CodeAnalysis.CSharp.Workspaces
2.0.0 版或更高版本 - 然后再次尝试搭建脚手架
当我通过 Scaffold-DbContext 命令生成 EF 模型时出现此错误,并且在完成时出现警告。然后首先我纠正了 Scaffold-DbContext 的警告,然后 scaffold razor items 工作正常。
尝试构建 scaffold-dbContext 时出现歧义。 我再次尝试搭建脚手架,但 dbcontext 上出现了错误。这是对一个术语的模糊使用。 解决错误列表中的这种歧义。它解决了问题。
这件事发生在我身上,只是需要在脚手架之后构建项目。 (是的,这是最基本的事情,但我忘记了哈哈)
我正在使用 visual studio 2019 和 .Net Core 3.1
我刚刚意识到我在代码中的某处使用了 unsafe { }
块。我临时注释了不安全的代码,我可以再次使用脚手架。
我对此有疑问。我与数据库的连接字符串包含语言特定符号(拉脱维亚语),我只是花了 2 个小时才弄明白。我通过将我的项目文件夹和数据库放在仅包含 ASCII 符号的目录中来修复它。
也许对某人有用。
在构建脚手架之前构建解决方案,它对我有用。