当我创建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; }
}
}
答案 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中的问题。