Entity framework 在MVC中构建读取操作;没有为此对象定义无参数构造函数。”;
我正在处理一个基本的MVC5/EF6应用程序,当我尝试在MVC中构建读取操作时,遇到以下错误:Entity framework 在MVC中构建读取操作;没有为此对象定义无参数构造函数。”;,entity-framework,asp.net-mvc-5,Entity Framework,Asp.net Mvc 5,我正在处理一个基本的MVC5/EF6应用程序,当我尝试在MVC中构建读取操作时,遇到以下错误: Error There was an error running the selected code generator: 'No Parameterless constructor defined for this object' 它无论如何都不需要它,因为我调用的是read,而不是delete或update,但是所讨论的模型确实有一个无参数构造函数(下面的模型也是如此) 下面是我的控制器,
Error
There was an error running the selected code generator:
'No Parameterless constructor defined for this object'
它无论如何都不需要它,因为我调用的是read,而不是delete或update,但是所讨论的模型确实有一个无参数构造函数(下面的模型也是如此)
下面是我的控制器,它还有一个无参数构造函数:
public ArticleController()
{
connection = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
context = new TRNContext(connection);
}
// GET: Article
public ActionResult Index(int id)
{
return View(context.Articles.SingleOrDefault(a => a.ArticleID == id));
}
错误消息有点误导。需要一个无参数的构造函数,但它不是模型,需要它的是datacontext。此错误可能是由于这种情况造成的。您有一个类,该类继承自DbContext类。如果生成该类而不是编写此类的构造函数方法,则构造函数访问修饰符可能会受到保护。如果您对其进行公共编辑,问题将得到解决。我在ASP.NET Core MVC应用程序中遇到此错误,原因是无法连接到数据库。我花了几个小时检查我的模型和dbContext类,结果发现它们没有问题。应用程序无法连接到数据库。有两个地方我必须检查
还有一个使用aspnet core的场景,其中程序类没有公开IWebHostBuilder,因此设计时dbcontext创建可以正常工作 我花了几个小时试图用aspnet core 2.2 mvc应用程序解决这个错误 查看此链接以了解ef core工具是如何工作的。重新编写程序类以支持应用程序服务为我解决了这个问题,因为我的dbcontext没有使用无参数构造函数。
在使用
AddDbContext
时,请务必删除.NET Core的无参数构造函数。请参见GitHub上的内容。这些答案不明确。你们能提供要删除的文件和代码行吗?提供链接和/或示例来说明你们的意思会很有帮助。
public ArticleController()
{
connection = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
context = new TRNContext(connection);
}
// GET: Article
public ActionResult Index(int id)
{
return View(context.Articles.SingleOrDefault(a => a.ArticleID == id));
}