Я использую VS2012, и я кое-что сделал, чтобы нарушить мою конфигурацию EntityFramework. Установка и EDMX некоторое время работали правильно с использованием EF5.

Позже я обновился до EF6 и на этом этапе был вынужден вручную вносить несколько изменений пространства имен в сгенерированный код каждый раз, когда я обновлял модель. Но все равно работало.

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

В настоящее время я вообще не могу создать первую модель EDMX для БД. Когда я пытаюсь это сделать, мастер выполняет шаги, а затем выдает ошибку - сначала диалоговое окно с нулевой ссылкой, а затем в выводе VS:

Unable to generate the model because of the following exception: 'System.TypeLoadException: Could not load type 'System.Data.Entity.Core.Mapping.EntityContainerMapping' from assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.DbDatabaseMappingBuilder.Build(SimpleMappingContext mappingContext)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List`1 errors)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, ModelBuilderSettings settings, List`1 errors)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings settings, ModelBuilderEngineHostContext hostContext)'.

Я удалил EF и переустановил EF6 с помощью NUGET. Я также пробовал это в недавно созданном проекте с тем же результатом.

Поиски в Google не дали результатов. Любые идеи?

В настоящее время установлена ​​версия EF 6.1.0.

1
David Tansey 5 Апр 2014 в 01:49

4 ответа

Лучший ответ

Также пробовал Visual Studio 2013 с инструментами структуры сущностей 6.1.1, та же ошибка, о которой вы говорите, сохраняется, и вы не можете создать первую модель EDMX для БД. Правильное решение - отправить отчет об ошибке команде Visual Studio, а тем временем удалить инструменты Entity Framework версии 6.1 и установить 6.0.1, который будет работать . Инструменты EF 6.0.1 можно найти на установочном носителе как EFTools в папке пакетов.

P.S. Также, когда вы ремонтировали VS2012, вы фактически переустанавливали EFTools 6.0.1 и удаляли 6.1.0 / 6.1.1. В первую очередь вы нарушили конфигурацию, непреднамеренно обновив EF Tools, не осознавая этого!

1
Robert Omete 3 Авг 2014 в 14:33

В конечном итоге мне удалось решить эту проблему, выполнив REPAIR установку VS2012. После установки REPAIR и перезагрузки я снова могу создавать модели EDMX.

0
David Tansey 5 Апр 2014 в 01:47

Инструменты Entity framework 6.1.1, скорее всего, не работают, если вы обновили исходную RTM-версию 2013 г. Возможно, в нем были повреждены записи реестра. Я загрузил полную версию на 6 ГБ и установил новую операционную систему, в которой никогда не было Visual Studio, и все работает!

0
Robert Omete 14 Авг 2014 в 09:56

Попробуйте это исправить:

Если вы используете VS2013, перейдите по ссылке:

C: \ ProgramData \ Package Cache {08AEF86A-1956-4846-B906-B01350E96E30} v12.0.20912.0 \ packages \ EFTools , выберите файл EFTools.msi и дважды щелкните его, чтобы установить. Эта переустановка может решить вашу проблему.

Если вы используете VS2015, перейдите по ссылке:

C: \ ProgramData \ Package Cache {2A56910C-69C8-495D-8ED8-9080F0A14E58} v14.0.41103.0 \ packages \ EFTools , выберите файл EFTools.msi и дважды щелкните его, чтобы установить . Эта переустановка может решить вашу проблему.

0
Farb 30 Ноя 2016 в 17:24