Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not get the reflection type for DbContext

When scaffolding a controller in ASP Core 2.0 VS 2017 I get the following:

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)

This all of a sudden has occurred, and a colleague running the same code does not get this problem, I had tried clean builds, deleting the bin and obj folders in each project, deleting the db and still I cannot seem to work it out, would appreciate any help.

Model:

public class SettingType : BaseModel
{
    public int SettingTypeId { get; set; }
    public string SettingTypeDescription { get; set; }
    public string SystemCode { get; set; }
}
like image 572
David B Avatar asked Nov 01 '17 17:11

David B


4 Answers

I had this issue too, when I was using the new C#7 feature (expression bodied members and Throw expressions) but by replacing my code with it's equivalent in C#6 it didn't give me that error anymore. Try to test your project without any C#7 new feature and probably it should works fine. I'm not sure what is the reason but I think The Roslyn packages that scaffolding depends on does not support C#7 new features yet.

As a workaround to let scaffolding works with C#7 I think you can by doing the following:

  1. Install (or update) NuGet package Microsoft.CodeAnalysis.CSharp.Workspaces version 2.0.0 or higher
  2. And then retry to scaffolding again
like image 123
Salah Akbari Avatar answered Nov 16 '22 22:11

Salah Akbari


I get this error when I generate the EF model by Scaffold-DbContext command and this finished with warnings. Then firstable I correct the warnings of Scaffold-DbContext and then scaffold razor items works fine.

like image 41
Darío León Avatar answered Nov 16 '22 21:11

Darío León


I'm using visual studio 2019 and .Net Core 3.1

I just realized that somewhere in my code I had used unsafe { } block. I commented unsafe code for temporary and I can scaffold again.

like image 2
Masoud Keshavarz Avatar answered Nov 16 '22 21:11

Masoud Keshavarz


There were an ambiguity when trying to scaffold-dbContext. i try to scaffold again and errors appeared on the dbcontext. it was an ambiguous use of a term. resolving this ambiguity fond on the list of errors. It solved the problem.

like image 1
gilles greata Avatar answered Nov 16 '22 20:11

gilles greata