Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在MVC中构建读取操作;没有为此对象定义无参数构造函数。”;_Entity Framework_Asp.net Mvc 5 - Fatal编程技术网

Entity framework 在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,但是所讨论的模型确实有一个无参数构造函数(下面的模型也是如此) 下面是我的控制器,

我正在处理一个基本的MVC5/EF6应用程序,当我尝试在MVC中构建读取操作时,遇到以下错误:

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类,结果发现它们没有问题。应用程序无法连接到数据库。有两个地方我必须检查

  • Startup.cs-应使用正确的连接字符串注册数据库上下文。

  • Appsetting.json-应正确键入连接字符串。


  • 还有一个使用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));
    }