运行所选生成器时出错。尝试重建项目

时间:2013-12-30 14:48:12

标签: c# entity-framework visual-studio-2013 asp.net-mvc-5

当我创建Scaffold并添加Model类时,我收到这些错误“运行所选生成器时出错。尝试重建项目”

我有三个Model类:

1.Department.CS

2.Designation.cs

3.CompanyDBContext.cs

数据库:我在数据库中有两个表,1。部门(deptID,deptName,Description)                                          2.指定(desgtID,desgName,description)

目标: - 我想为这些场景创建一个视图页面。喜欢这个

插入表格名称(TextBox)+部门名称(下拉列表框)+名称名称(下拉列表框)

1.Department.CS

namespace mvcAppraisalSystem.Models
{
  public class Department
  {
    [Key]
    public int deptID { get; set; }
    public string deptName { get; set; }
    public string Description { get; set; }
  }
 }

2.Designation.cs

namespace mvcAppraisalSystem.Models
{
   public class Designation
   {
      [Key]
      public int desgID { get; set; }
      public string desgName { get; set; }
      public string description { get; set; }
   }
 }

3.CompanyDBContext.cs

 namespace mvcAppraisalSystem.Models
 {
   public class CompanyDBContext : DbContext
   {
      public DbSet<CompanyDBContext> Departments { get; set; }

      public DbSet<CompanyDBContext> Designations { get; set; }
   }
 }

8 个答案:

答案 0 :(得分:6)

这是连接字符串的问题,您可以使用{em> web.config 文件中的DbContext名称更改连接字符串,如下所示:

<connectionStrings>
  <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MVCmove-20140616082808.mdf;Initial Catalog=aspnet-MVCmove-20140616082808;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

对于班级:

using System;
using System.Data.Entity;
namespace MVCmove.Models
{
  public class Movie
  {
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime ReleaseDate { get; set; }
    public string Default1Genre { get; set; }
    public decimal Price { get; set; }
  }
  public class MovieDBContext : DbContext
  {    
    public DbSet<Movie> Movies { get; set; }
  }
}

答案 1 :(得分:5)

我尝试使用数据库优先EF在新创建的项目上构建我的第一个Scaffolded项目时出现此错误。

在添加新的实体数据模型后构建项目非常重要。显然,有必要初始化/配置项目的各个方面。

我之前在数据库第一篇教程中读过这篇文章,但却忘了它。最后,我在深入研究相关的SO问题后记得它,包括这个问题。

答案 2 :(得分:2)

我按照他们在错误中建议的那样构建了项目:“尝试重建项目”。 然后我又一次尝试了。错误消失了。 在我的案例中,新项目的创建并不奏效。 运行构建确实。

答案 3 :(得分:0)

希望这有助于某人。 我在SO中尝试了一些建议但在我的情况下,它是另一回事。我忘了我创建了一个部分类,我保留了我的数据注释,其中有一个属性,我从模型/数据库中删除。所以,在我从数据库更新模型后,项目编译得很好,我没有发现任何问题。但是,稍后当我尝试使用脚手架创建控制器时,EF开始抛出&#34;运行所选生成器时出错。尝试重建项目&#34;。在记住并从部分类中删除属性后,我终于能够解决问题。

答案 4 :(得分:0)

我重命名了Model,然后再次尝试添加控制器,然后我将Model重命名为first name。之后,控制器的创建成功。

答案 5 :(得分:0)

我在VS2017上也遇到了同样的错误。

我的解决方案是卸载我的项目,然后编辑csproj文件并查找对System.Web.MVC的引用并将其删除,然后保存并重新加载项目。然后我去管理NuGet包,然后你可以重新安装Microsoft.AspNet.Mvc包。

清理并重建解决方案并尝试再次添加控制器并且它有效!!

答案 6 :(得分:0)

不知道是否有其他人有此问题,但重启Visual Studio在VS2017中删除了我的错误。

答案 7 :(得分:0)

通过关闭并重新打开Visual Studio修复了VS 2019中的问题。