Волшебник «Обновление модели» не работает с NPGSQL и Visual Studio 2013 EntityFramework

StackOverflow https://stackoverflow.com//questions/21007138

Вопрос

В настоящее время мы используем Visual Studio 2012, EF 5.0 и NPGSQL 2.0.12.0.

Я хотел бы обновить до Visual Studio 2013 и NPGSQL 2.0.14.3 (я в порядке с EF 5.0 на данный момент).

В настоящее время мы используем мастер «модели обновления», который принимает любые изменения в схеме и подают их в файл EDMX, который просматривается в VS Designer. Мы делаем это, следуя неловкой процедуре использования DDEX в NPGSQL.Provider2 и запустите «экспериментальный» экземпляр Visual Studio.

Но это больше не работает в Visual Studio 2013 (после обновления созданных записей реестра). Также это не работает, если я изменим он DbProvider в NPGSQL 2.0.14.3 в Machine.config.

Было бы выдающимся, если бы кто-то мог сказать мне, если они получили это на работу и как.

как временная альтернатива, я рассматриваю возможность обновления файла EDMX из схемы с помощью EDMGEN.exe. Пока что я смог создать файлы .csdl, .ssdl и .mdl, но я не могу найти способ упаковать всеми из них в файл .edmx. Кто-нибудь пробовал этот подход?

Это было полезно?

Решение

Дизайнер EF нуждается в провайдере DDEX для работы.Похоже, изначально провайдер DDEX был установлен только в вашей экспериментальной версии VS2012.Когда вы устанавливаете VS2013, у вас нет ключей реестра для поставщика DDEX, а Designer EF не может работать с вашей базой данных.

EDMX просто склеивает CSDL MSL и SSDL.Предполагая, что вы используете Schemas V3 (то есть ваш CSDL в этом пространстве имен: xmlns="http://schemas.microsoft.com/ado/2009/11/edm") Вы можете просто вставить содержимое файлов в этом шаблоне (я добавил комментарии, какие файлы должны быть вставлены где):

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
  <!-- EF Runtime content -->
  <edmx:Runtime>
    <!-- SSDL content -->
    <edmx:StorageModels>
        <!-- paste SSDL contents here -->
    </edmx:StorageModels>
    <!-- CSDL content -->
    <edmx:ConceptualModels>
        <!-- paste CSDL contents here -->
    </edmx:ConceptualModels>
    <!-- C-S mapping content -->
    <edmx:Mappings>
        <!-- paste MSL contents here -->
    </edmx:Mappings>
  </edmx:Runtime>
  <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
  <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
    <edmx:Connection>
      <DesignerInfoPropertySet>
        <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
      </DesignerInfoPropertySet>
    </edmx:Connection>
    <edmx:Options>
      <DesignerInfoPropertySet>
        <DesignerProperty Name="ValidateOnBuild" Value="true" />
        <DesignerProperty Name="EnablePluralization" Value="True" />
        <DesignerProperty Name="CodeGenerationStrategy" Value="None" />
      </DesignerInfoPropertySet>
    </edmx:Options>
    <!-- Diagram content (shape and connector positions) -->
    <edmx:Diagrams>
    </edmx:Diagrams>
  </edmx:Designer>
</edmx:Edmx>
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top