具体来说,我正在使用Microsoft脚手架,WebAPI 2.1,MVC 5.1.1和Visual Studio 2013 Update 2 RC来构建WebAPI控制器.我注意到,当我尝试在上下文中添加如下所示的映射文件时,只有在脚手架运行时才会收到错误消息.我已经尝试了我能想到的一切,但是当添加如下行时,我仍然会收到消息:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new AnswerMap());
在脚手架花费了10秒以上的时间后,在对话框中给出以下错误消息:
Error There was an error running the selected code generator: 'Exception has been thrown by the target of an invocation'
检查在网络上的原因我看到许多不同的解决方案,但没有帮助我.大多数解决这个错误的解决方案似乎涉及到,退出,重新开始,重建或事物的组合.有些用户似乎无法解决问题.如果我无法找到有关错误的更多信息,那真的很困难.
希望有人可以指向我可以找到日志文件的地方,或者给我一些关于如何解决这个问题的建议.
请注意我已经审查过:
Visual Studio 2013 Scaffolding Error
这里没有什么帮助.我重新安装了脚手架几次.如果我不添加映射文件,并且如果我再次添加,那么问题就会消失.当我只是使用我的上下文通常一切都可以.
这是我用于上下文的代码
using Data.Mapping.Enum; using Entities.Models.Enum; using System; using System.Collections.Generic; using System.Data.Entity; using System.Diagnostics; using System.Data.Entity.ModelConfiguration.Conventions; using System.Linq; using System.Web; using Entities.Models.Core; using System.Data.Entity.ModelConfiguration; using System.ComponentModel.DataAnnotations.Schema; namespace WebRole1.Models { public partial class testCertContext1 : DbContext { public testCertContext1() : base("name=testCertContext1") { } public DbSet<Answer> Answers { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.Configurations.Add(new AnswerMap2()); } } public class AnswerMap2 : EntityTypeConfiguration<Answer> { public AnswerMap2() { // Primary Key this.HasKey(t => t.AnswerId); // Identity this.Property(t => t.AnswerId) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); // Table & Column Mappings this.ToTable("Answer"); this.Property(t => t.AnswerId).HasColumnName("AnswerId"); this.Property(t => t.Text).HasColumnName("Text"); } } }