В частности, я пытаюсь построить контроллеры WebAPI с помощью шаблонов Microsoft, WebAPI 2.1, MVC 5.1.1 и Visual Studio 2013 Update 2 RC. Я заметил, что когда я пытаюсь добавить файл сопоставления, как показано ниже, в контексте, я получаю сообщения об ошибках только при запуске шаблона. Я пробовал все, что мог придумать, но я все еще получаю сообщения при добавлении такой строки:
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
Здесь ничего не помогает. Я переустанавливал леса несколько раз. Проблема исчезнет, если я не добавлю файл сопоставления, и вернется, если я добавлю его снова. Когда я просто использую свой контекст, обычно все в порядке.
Вот код, который я использую для контекста
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");
}
}
}