Контроллер лесов не работает с Visual Studio 2013, обновление 2

ПРОБЛЕМА:

Я обновился до Visual Studio 2013, обновление 2, и теперь я не могу создавать каркасы контроллеров.

Проблема не связана с конкретным проектом: когда я пытаюсь построить контроллер, я получаю следующую ошибку во ВСЕХ и ЛЮБЫХ проектах:

There was an error running the selected code generator:
'Exception has been thrown by the target of an invocation.'

Он работал до обновления до обновления Visual Studio 2013 2.

Гуглил проблему до смерти, но ни одно из различных предложений не работает

Eg:

  1. Комментирование OnModelCreating в моем контексте;

  2. Удаление таких пакетов, как MvcScaffolding и т. д. (у меня они не установлены и не работают ни с одним проектом);

Я модифицировал/настроил некоторые шаблоны, но после изменений все заработало.

РЕДАКТИРОВАТЬ:

Я удалил Visual Studio 2013 Update 2 и тем самым вернулся к Visual Studio версии 12.0.21005.1 REL.

Проблема исчезла. Следовательно, проблема определенно связана с обновлением 2.

ВОПРОС:

Кто-нибудь (включая Microsoft) знает об исправлении?

РЕДАКТИРОВАТЬ 2:

Ответ Фаррука Субхани не касается вопроса: в вопросе четко указано, что удаление ссылок на MVCScaffolding не решает проблему.

Я добавил награду в 200 баллов, пожалуйста, ответьте на вопрос, как четко указано.


person awrigley    schedule 28.05.2014    source источник
comment
Да, и скаффолдинг опции контекста для контроллера и представлений.   -  person awrigley    schedule 30.06.2014
comment
проверьте, обновлена ​​ли ваша сборка EF с загрузками   -  person Dave Alperovich    schedule 30.06.2014
comment
С EF или его сборками проблем нет. У меня установлен EF 6.1. Если бы возникла проблема, формирование шаблонов не работало бы (как это происходит), если не установлено обновление 2 VS 2013 (т. е. только оригинальный вариант VS 2013).   -  person awrigley    schedule 30.06.2014
comment
Вы используете Code First?   -  person Justin    schedule 03.07.2014
comment
Да, и все это работает, когда я возвращаюсь к Visual Studio 2013 (т.е. удаляя обновление 2).   -  person awrigley    schedule 04.07.2014
comment
Я решаю эту проблему, обновляя Visual Studio 2013 до обновления 3.   -  person mejiamanuel57    schedule 05.09.2014
comment
У меня такая же проблема с VS2015 Update 2, работающим с последней версией .net 5 (.net core 1.0). Я не делал ничего нестандартного, а просто следил за этим docs.asp.net/en/latest/tutorials/. решения пока не нашел...   -  person LDJ    schedule 07.04.2016


Ответы (16)


Эй для всех вас, что ничего не работает, реальный ответ: вам нужно удалить ВСЁ, что имеет configSource в web.config, и строку подключения необходимо встроить.

ИЗМЕНИТЬ:

Кто-то указал, что это должны быть только теги <configSettings>, <appSettings> и <connectionStrings>, НЕ использующие атрибут configSource. И что он по-прежнему может использовать атрибуты configSource в других местах, например, тег перезаписи.

Я думаю, что инструментарий не может следовать местоположениям configSource для вещей, которые он использует, таких как строки подключения и настройки приложения.

Microsoft должна заняться этой проблемой, если она еще не исправлена.

РЕДАКТИРОВАТЬ 2:

Даже если @awrigley пометил свой ответ как правильный, это известная ошибка Visual Studio. Мне удалось рассказать тогда, и я думаю, что это скоро привлечет внимание. https://github.com/aspnet/Tooling/issues/169#issuecomment-144197015

person regisbsb    schedule 07.10.2014
comment
да. Во всяком случае, исправил это для меня. - person rohancragg; 28.11.2014
comment
Да, у меня были кое-какие ненужные вещи в web.config. - person radu florescu; 31.12.2014
comment
У меня сработало, у меня были и AppSettings, и ConnectionStrings, использующие configSource. Пришлось удалить оба, чтобы исправить. Спасибо! - person Geoff Gunter; 22.01.2015
comment
работал у меня на VS 2013 Update 4, просто прокомментировал его и отлично работал - person Shiham; 31.03.2015
comment
VS 2015 также имеет эту проблему - person hacker; 17.11.2015
comment
Это известная проблема с инструментами и зарегистрированная ошибка. - person regisbsb; 18.11.2015
comment
Я предполагаю, что эта проблема не - person mlibby; 28.12.2015
comment
Просто упоминание, что это все еще проблема. Я использую источник конфигурации для своих подключений и настроек приложения. Я встроил свои соединения, чтобы посмотреть, работает ли это (обновление 3 VS15 и EF 6.1.3). Я должен использовать источник конфигурации. При построении леса я просто говорю созданию контроллера не выполнять EF для меня, а при создании представления я не устанавливаю контекст данных. В любом случае, это работает для меня, поскольку строительные леса по умолчанию никогда не являются тем, что мне нужно. - person Kevin LaBranche; 01.03.2017
comment
У меня проблема с VS 2017! Три основные версии VS, и у всех одна и та же проблема? Что-то должно быть не так в документации или образцах. - person EoRaptor013; 03.04.2017
comment
Я думаю, что эта ошибка оставлена ​​намеренно :) MS заставляет нас отправлять наши строки подключения в VCS. Другого способа объяснить это нет. - person Tsagana Nokhaeva; 30.01.2018

Комбинация вещей сработала для меня:

  1. Обновите Visual Studio 2013 с обновлением 3.

  2. Обновите Entity Framework до 6.1.1

  3. Измените конфигурацию контекста, чтобы использовать IDbSet‹...> вместо DbSet‹...> (я слышал, что это может повлиять на использование асинхронных действий, но, очевидно, не в моем случае, так как я использую это в своих действиях входа и т. д., как предоставлено образцом пакета Nuget ASP.NET Identity 2).

Почему эта комбинация работает, я понятия не имею. Но, учитывая гремящую тишину от MS, я, вероятно, не одинок. Я думаю, обновление 2 просто не сработало...

person awrigley    schedule 29.10.2014
comment
К вашему сведению, у меня обновление 4, и эти инструкции, к сожалению, не сработали - та же ошибка. - person sming; 22.11.2014
comment
Вы пробовали другие предложения здесь? Мне они не подошли, но если то, что работает у меня, не работает у вас, то, может быть, то, что не работает у меня, сработает у вас? Просто надеюсь. Я не понимаю, почему евангелисты РС, например, Скотт Хансельман, не обращают внимания на эти проблемы и не пишут в блогах с решениями. - person awrigley; 23.11.2014
comment
да, я пробовал их все, кроме Фарруха, который, как вы утверждаете, на самом деле не отвечает на вопрос. Ответы regisbsb и Math неприменимы, поскольку мы используем встроенные строки конфигурации. - person sming; 23.11.2014
comment
см. мой ответ... по существу, убедитесь, что в web.config элемент configSections является первым элементом в конфигурации перед элементом connectionStrings - person Thiago Silva; 10.12.2014
comment
Это решение сработало для меня, хотя у меня была другая проблема с сообщением об ошибке: ... Чтобы сослаться на существующую конфигурацию, используйте методы Entity‹T›() или ComplexType‹T›(). Я установил VS2013 Update 4 и EF 6.1.2. Что я сделал по-другому, так это изменил DbSet‹...› на IDbSet‹...› в шаблонах T4, которые вы можете добавить, щелкнув правой кнопкой мыши веб-проект Entity Framework>Customize Reverse Engineer Templates. - person Jose; 06.01.2015
comment
Это решение работало для меня с Visual Studio Express 2013 для Интернета и EF 6.1.2. Спасибо! - person ThdK; 20.01.2015
comment
Я забыл добавить ‹connectionStrings› и ‹/connectionStrings› вокруг ‹add name.... Это указывает на то, что общим решением является ошибка веб-конфигурации, препятствующая работе скаффолдинга. - person Brice; 16.05.2015
comment
Переход на использование IDBSet вместо DbSet - это то, что исправило это для меня. Спасибо! - person Treyphor; 04.07.2015
comment
Замена DbSet на IDbSet у меня тоже сработала. Спасибо :) - person Laurence Frost; 24.11.2015
comment
Перепробовал 50 разных средств, и это сработало для меня! - person Steven Edison; 13.12.2016

Решение

Убедитесь, что раздел

<connectionStrings>..</connectionStrings>

после

<configSections>..</configSections>
person Moji    schedule 03.10.2016

Выполните следующую команду в Консоли диспетчера пакетов:

Uninstall-Package EntityFramework -Force

Install-Package EntityFramework

Uninstall-Package  MvcScaffolding

Install-Package MvcScaffolding
person SKB    schedule 04.03.2015

У меня была такая же проблема с Visual Studio 2013 Update 3, но только для шаблонов, работающих с Entity Framework. Проблема, по-видимому, вызвана несовместимостью между Entity Framework 6.1.0 и шаблонами в Visual Studio 2013 с обновлением 2 и выше.

Чтобы обновить EF, сделайте следующее:

Uninstall-Package EntityFramework-Force

Установка EntityFramework

Этот ответ заимствован из здесь

После обновления скаффолдеры у меня работают нормально. Обязательно устанавливайте новую версию в каждом проекте, где требуется Entity Framework.

person The Victor    schedule 03.10.2014

В моем случае я решил проблему со строкой подключения в файле web.config.

Предыдущая проблема у меня есть

  <connectionStrings configSource="Configs\ConnectionString.config"/>

и я не знаю почему, но vs не могу подключиться к базе данных и терпит неудачу.

после изменения

<connectionStrings>
    <add name="UIBuilderContext" connectionString="metadata=res:/ ..... " />
  </connectionStrings>

и это работает

person Math    schedule 05.08.2014
comment
Я попробую это, когда у меня будет время, чтобы переустановить VS 2013 Update 2. - person awrigley; 06.08.2014
comment
Строки подключения в порядке, проблем нет, поэтому могу исключить это. - person awrigley; 12.08.2014
comment
Это исправило это для меня. У меня были connStrings в отдельном файле из соображений конфиденциальности. Временное помещение их обратно в файл we, confi (т. е. встроенный) исправило это для меня (и затем я переместил их обратно, как они были, когда у меня были каркасный контроллер и представления). - person rohancragg; 28.11.2014

Я объясню здесь немного больше на английском языке, чтобы каждый мог понять. Надеюсь, это кому-нибудь поможет. Это происходит из-за того, что Visual Studio не удается подключиться к модели базы данных.

Это происходит, когда вы меняете имя и/или путь в классе, который расширяет DbContext, и не меняете его в файле Web.config (в самой внешней части вашего проекта: в корне).

Пример:

Представьте, что вы замаскировали код DbContext:

а) Вы щелкнули правой кнопкой мыши папку в своем проекте и добавили «Модель данных сущности ADO.NET» и назвали ее «Модель1».

Вы получаете следующий код:

  public class Model1 : DbContext
{
    // Your context has been configured to use a 'Model1' connection string from your application's 
    // configuration file (App.config or Web.config). By default, this connection string targets the 
    // 'Skelleton.Models.Model1' database on your LocalDb instance. 
    // 
    // If you wish to target a different database and/or database provider, modify the 'Model1' 
    // connection string in the application configuration file.
    public Model1()
        : base("name=Model1")
    {
    }

    // Add a DbSet for each entity type that you want to include in your model. For more information 
    // on configuring and using a Code First model, see http://go.microsoft.com/fwlink/?LinkId=390109.

    // public virtual DbSet<MyEntity> MyEntities { get; set; }
}

введите здесь описание изображения

б) Теперь вы решили, что имя, которое вы только что написали, просто плохое, поэтому вы меняете его на AppContext.

Теперь ваш код выглядит так:

  public class AppContext : DbContext
{
    // Your context has been configured to use a 'AppContext' connection string from your application's 
    // configuration file (App.config or Web.config). By default, this connection string targets the 
    // 'Skelleton.Models.AppContext' database on your LocalDb instance. 
    // 
    // If you wish to target a different database and/or database provider, modify the 'AppContext' 
    // connection string in the application configuration file.
    public AppContext()
        : base("name=AppContext")
    {
    }

    // Add a DbSet for each entity type that you want to include in your model. For more information 
    // on configuring and using a Code First model, see http://go.microsoft.com/fwlink/?LinkId=390109.

    // public virtual DbSet<MyEntity> MyEntities { get; set; }
}

введите здесь описание изображения

Затем вы пытаетесь выполнить операции CRUD (создание, чтение, обновление, удаление) с представлениями, но это не удается!

введите здесь описание изображения

Это почему?

Что ж, если мы перейдем к файлу web.config, то увидим следующую строку:

 <add name="Model1" connectionString="data source=(LocalDb)\v11.0;initial catalog=Skelleton.Models.Model1;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

(Эта строка обычно ниже <add name="DefaultConnection" )

введите здесь описание изображенияВот в чем проблема. Вам нужно изменить Model1 на имя, которое вы дали!

В этом случае должно быть указано «AppContext» вместо «Model1».

А где написано:

initial catalog=Skelleton.Models.Model1;

Подтвердите это:

  1. Это имя файла .cs с классом

  2. Пространство имен (или ряд имен (разделенных точками), которые стоят перед именем вашего класса) является правильным. Важно отметить, что вы не добавляете в конец расширение «.cs»; просто имя вашего файла.

Это должно выглядеть так: введите здесь описание изображения

Поскольку я изменил имя класса как внутри, так и снаружи (внутри него и его имя файла) и не изменил его местоположение, я просто переименовал его в AppContext.

После того, как это было сделано. Вы можете нормально скаффолдить ;)

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

person Jose A    schedule 05.02.2015
comment
Извините, но я не изменил название модели. В моем web.config нет ошибки. Как ясно указано в вопросе, проблема возникла при обновлении Visual Studio 2013 до обновления 2. - person awrigley; 06.02.2015
comment
@awrigley: Ах, отлично :) . Ненавижу, когда такое происходит. Оставлю ответ там на всякий случай, если кто-то представит подобную проблему. Спасибо за разъяснения. - person Jose A; 07.02.2015
comment
Ошибка не та. Произошла ошибка при запуске выбранного генератора кода: «Целью вызова было выдано исключение». - person MusicAndCode; 07.02.2017
comment
Большое спасибо !, вы наконец спасли мой день. Этот работал на меня! - person yibe; 11.08.2018

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

Я по-прежнему мог использовать атрибуты configSource в других местах, например тег rewriter.

person Cord Rehn    schedule 02.04.2015
comment
Это сработало для меня. Закомментируйте строку с атрибутом configSource и скопируйте содержимое из файла configSource для скаффолдинга. - person chris vietor; 04.05.2015

Я думаю, проблема связана с плохой конфигурацией в файле web.config.

В моем случае у меня было несколько разделов <entityFramework> в web.config, и проблема решилась после того, как я изменил конфигурации.

person Dipen Shah    schedule 08.05.2015
comment
Я обнаружил, что небрежно поместил свои контексты инфраструктуры сущностей за пределы раздела entityFramework в моем файле web.config. - person ThrowingSpoon; 02.06.2015

Я использую VS 2013 Update 4 и имею точно такую ​​​​же проблему. У меня это работает при перемещении строки подключения из внешнего файла в web.config. Так что я думаю, вы могли бы попытаться убедиться, что атрибут configureSource для connectionString не используется при построении шаблонов.

Мой web.config до и после изменения До:

<connectionStrings configureSource="connectionStrings.config/>

После:

<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net configSource="log4net.config" />
  <connectionStrings>
    <clear/>
    <add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=YourDb;Integrated Security=False;User ID=sa;Password=YourPassword!#;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
person Dung Le    schedule 19.06.2015

Это может быть полезно для людей, которые не установили какие-либо пакеты nuget для создания шаблонов в своем решении.

На самом деле у меня не установлены mvcscaffolding или t4scaffolding, и я получаю такое же сообщение об ошибке.

В моем случае проблема/ошибка была вызвана изменением строки подключения.

Вот что у меня было/шаги для воспроизведения.

  • Установил Visual Studio 2013 Community Edition.
  • Создал MVC-проект
  • Создал код первой модели
  • Отредактированная строка подключения для подключения к реальному серверу, например:

    <add name="DefaultConnection"
         connectionString="server=myserv;database=MyCustomerDB;user id=myuser;password=mypass" 
         providerName="System.Data.SqlClient" />
    

Затем я включил миграцию через nuget, например:

  • Включить-миграции
  • Добавить-миграция InitialCreate
  • Обновление базы данных
  • Я запустил сайт и смог зарегистрировать пользователя. Все таблицы созданы корректно.

Затем я создал контроллер, используя опцию скаффолдинга:

  • щелкните правой кнопкой мыши «Контроллеры» > «Добавить» > Контроллер... > Контроллер MVC 5 с представлениями, используя Entity Framework > выбрал мой контекст и класс для использования. Это сработало.

Затем я решил внести больше изменений в код и начать с нуля:

  • Я изменил строку подключения следующим образом, чтобы использовать localdb:

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

Затем я продолжил:

  • удалил папку миграции
  • повторно включил миграцию, используя те же команды, что и выше, в консоли nuget
  • запустил сайт и зарегистрировал пользователя
  • проверил МДФ БД. Все таблицы есть, поэтому строка подключения работает.
  • щелкните правой кнопкой мыши «Контроллеры» > «Добавить» > Контроллер... > Контроллер MVC 5 с представлениями, используя Entity Framework. Выбрал мой контекст и класс для использования. Это не сработало, и появилась эта всплывающая ошибка:

Произошла ошибка при запуске выбранного генератора кода: «Целью вызова было создано исключение».

РЕШЕНИЕ:

После некоторого расследования я изменил строку подключения в web.config на исходную на «настоящий сервер» (вместо localdb). Я снова попытался сгенерировать контроллер с представлениями. Это сработало!

Так что мне кажется, проблема/ошибка строки подключения или проблема с локальной базой данных... не могу это объяснить. Возможно, Visual Studio не нравится то, что я сделал, мне пришлось сохранить старую строку подключения...

В любом случае, теперь, когда мне нужны леса, я просто меняю строку подключения на ту, которая работает. Затем, чтобы проверить свой веб-сайт, я верну его на localdb.

person firepol    schedule 26.11.2014
comment
Отмечу, что это не отвечает на вопрос, так как моя проблема, как указано в вопросе, была другой. Не хотелось бы никого путать, так что -1. - person awrigley; 03.12.2014
comment
Я бы посоветовал прочитать FAQ на этом сайте о том, как его использовать. Он не предназначен для того, чтобы быть форумом, где нить качается так и эдак и расходится с вопросом. Вместо этого это сайт вопросов и ответов. То есть вы задаете вопрос, а другие люди предлагают ответы. Они не пытаются вести разговор о подобных проблемах, как это может происходить на форуме. Я не намерен быть грубым или несправедливым, просто пытаюсь продвигать правильное использование этого сайта, как это делали другие со мной в первые дни. - person awrigley; 03.12.2014
comment
а, хорошо, я понимаю, тогда я думаю, мне следовало опубликовать тот же вопрос, пусть кто-нибудь скажет мне, что это дубликат, а затем ответьте на мой собственный вопрос, сказав, что это другая проблема (то же сообщение об ошибке... другая проблема? Правда?) и обосновать дубликат, потому что решение другое? Мне нравится этот сайт, потому что я нахожу решения. И я не люблю дубликаты... в любом случае, спасибо за отзыв. Я подумаю дважды, прежде чем в следующий раз публиковать рабочие и полезные решения... - person firepol; 04.12.2014
comment
извините, но вы явно не видите. Ошибка аналогична или даже такая же, но ваша настройка отличается. Вы НЕ ответили на вопрос, который я задал, и это сбивает с толку других. - person awrigley; 04.12.2014
comment
Я написал жирным шрифтом для людей, которые не устанавливали какие-либо пакеты nuget. Это не должно смущать людей, которые не обращаются ... в любом случае ... извините, не стесняйтесь удалять ответ. Когда я искал эту ошибку VS, я пришел сюда и в другой аналогичный вопрос о стеке. Иногда, чтобы найти хороший ответ, нужно много искать в Google... Я просто думал помочь... в следующий раз опубликую в своем блоге... - person firepol; 05.12.2014

Я выполнил следующее, чтобы решить эту проблему:

  1. В диспетчере пакетов проверьте, есть ли у вас MVCScfffolding или T4Scaffolding (базовый или предварительный выпуск для vs2013).
  2. Удалите все пакеты, которые зависят от любого из MVCScaffolding или T4Scaffolding.
  3. Скопируйте папку CodeTemplates полностью (не заменяйте свои пользовательские шаблоны, но убедитесь, что у вас есть остальные файлы из корня этой папки. Я полагаю, что вы сделали эту часть, так как вы настроили некоторые шаблоны, чтобы вы знали, где находится эта папка)
  4. Создайте свой проект и закройте его.
  5. Перезапустите Visual Studio в режиме администратора.
  6. Откройте консоль диспетчера пакетов (в ней не должно быть ошибок, и вы можете увидеть PM> без ошибок.
  7. Щелкните правой кнопкой мыши папку «Контроллер» и выберите «Добавить-> Новый элемент лесов» или выберите «Добавить-> Контроллер», оба должны спросить, какой из них вы хотите, а затем выбрать каркас MVC5 или тот, который когда-либо появляется в списке.
  8. Затем вы сможете выбрать свои параметры, если его контроллеру вам может понадобиться выбрать DBContext или репозиторий и т. д.

Это произвело для меня контроллер и соответствующие представления.

Я добавил в эту папку пользовательское частичное представление под названием QuickView, однако эта процедура формирования шаблонов не учитывала это и генерировала только представления, которые она делала по умолчанию. Я не уверен, нужно ли вам добавлять эти пользовательские представления в файл, чтобы сообщить Scaffolder о необходимости их создания.

person Farrukh Subhani    schedule 10.06.2014
comment
См. пункт 2 в моем вопросе - у меня не было установлено ни MVCScaffolding, ни T4Scaffolding. Так что ваше решение не актуально. Вы не упоминаете, установлено ли у вас Visual Studio 2013 Update 2 - если вы этого не сделаете, вы не отвечаете на вопрос, и вам следует удалить свой ответ. - person awrigley; 11.06.2014
comment
У меня установлено обновление 2 VS 2013. Если у вас нет MVCScaffolding или T4Scaffolding, даже тогда проверьте папку с пакетами, в ней может быть пустая папка. Если ни один из них не установлен, вы можете начать с шага 3. У меня не было ни одного из них, и возникла эта проблема, когда я обновил VS до обновления 2. Мне пришлось скопировать все шаблоны (только удаленные VB) и сохранить все файлы как есть. и последовал выше, и это сработало. Затем я установил MVCMailer, и диспетчер пакетов выдал ошибки при инициализации, поэтому мне пришлось удалить их и повторить попытку, и он снова заработал. - person Farrukh Subhani; 11.06.2014
comment
Сегодня я добавил пакет MVCMailer, и он снова добавил T4Scaffolding.Core, и я воспроизвел ту же ошибку, после удаления обоих пакетов ошибка все еще остается, и после того, как я выполнил шаги 4-8, Scaffolder снова заработал. - person Farrukh Subhani; 12.06.2014
comment
Я подробно ознакомился с вашими предложениями. По сути, они НЕ решают проблему, которая у меня есть. Они решают проблему, из-за которой были установлены MVCScaffolding или T4Scaffolding. Это не мой случай. Шаги 3 и далее представляют собой не что иное, как стандартные инструкции для контроллеров строительных лесов. Это то, что я делаю в любом случае. Извините, это точно не решение моей проблемы. - person awrigley; 13.06.2014

Для меня сработало то, что узел <configSections> в файле web.config был первым узлом сразу после узла <configuration>.

Первоначально, когда я добавил свой connectionStrings, я фактически поместил его перед configSections, что сломало инструмент Scaffold.

Похоже, что когда скаффолдинг запускается и пытается получить информацию о подключении, он ожидает, что раздел конфигурации для узла entityFramework уже существует, поэтому он знает, какой провайдер БД использовать, но когда у меня была строка подключения до configSections, он не знал использовать LocalDB (это то, что использовала моя строка подключения).

person Thiago Silva    schedule 10.12.2014

Я запускаю VS 2015RC, последнюю перед окончательной версией. Не сбрасывать со счетов ни одно из решений здесь. Мое решение находилось под менеджером пакетов nugget и обновляло мой пакет Microsoft.Aspnet.Mvc 5.2.3, что исправило мою проблему. Надеюсь, это поможет всем, кто использует VS 2015.

person RockingCoder    schedule 21.07.2015

я использовал Initializer, и при удалении/комментировании Initializer из конструктора myDbContext строительные леса работают нормально

public myDbContext () : base("name=DefaultConnection")
    {

        //Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DastanakDbContext>());
        //Database.Initialize(true);
    }
person AminM    schedule 13.02.2017

У меня была такая же проблема в обновлении 4. Я обнаружил, что проблема возникла из-за того, что <configSections></configSections> не было определено имя раздела. Исправление, которое я разместил между тегами, выглядит следующим образом, и все ошибки были исправлены:

<section name="entityFramework" 
         type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, 
               EntityFramework, Version=6.0.0.0, Culture=neutral, 
               PublicKeyToken=b77a5c561934e089" requirePermission="false" />

Соберите проект, и все должно работать. Ваше здоровье!

person RyanH    schedule 04.05.2015