Проблемы с подкладками ASP.NET при попытке добавить файл сопоставления

В частности, я пытаюсь использовать подсистемы 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");

        }
    }
}

Ответ 1

У меня была аналогичная проблема.
Проблема в моем случае состояла в том, что у меня была строка подключения, сохраненная в другом файле, отличная от классического файла web.config, чтобы избежать ее сохранения в моем репозитории Git.
Что-то вроде:

  <connectionStrings configSource="cstring.config"/>

Несмотря на то, что он был правильно настроен в другом файле, похоже, что эшафот не решает преобразования. В итоге он просто не находит базу данных.
Итак, мое решение:
- скопируйте строку подключения к базе данных в web.config
- строительные леса
- вернуться в предыдущее состояние.

Надеюсь, что это поможет

Ответ 2

У меня была такая же проблема раньше, я использую шаблон Repository с Unit of Work, и я изменил шаблон Code First Reverse Engineering, чтобы добавить метаданные в мои объекты. Когда я думал о том, чтобы отменить много чего, я вспомнил, что использовал .Net Framework 4.5.1!
После изменения целевой .Net framework, в свойствах проекта, до 4.5 проблема исчезла! Я изменил его во всех проектах.

Ответ 3

Для меня я должен был обеспечить <configSettings>, <appSettings> и <connectionStrings> теги НЕ с помощью атрибута configSource.

Ответ 4

Я столкнулся с аналогичной проблемой, следуя этому учебнику.

Решением было положить тег connectionString после configSections в web.config. Тогда это сработало!