Pregunta

Actualmente usamos Visual Studio 2012, EF 5.0 y NPGSQL 2.0.12.0.

Me gustaría actualizar a Visual Studio 2013 y NPGSQL 2.0.14.3 (Estoy bien con EF 5.0 por ahora).

Actualmente usamos el asistente de "Modelo de actualización" que toma algún cambio en el esquema y los alimenta al archivo EDMX que se ve en el Diseñador VS. Hacemos esto siguiendo el incómodo procedimiento de uso de DDEX en NPGSQL.PROVIDER2 y comenzando la instancia "Experimental" Visual Studio.

Pero esto ya no funciona en Visual Studio 2013 (después de actualizar las entradas de registro generadas). Además, no funciona si cambio él Dbprovider a NPGSQL 2.0.14.3 en Machine.config.

Sería sobresaliente si alguien me pudiera decir si esto consiguió que funcione y cómo.

Como alternativa temporal, estoy considerando actualizar el archivo EDMX desde el esquema utilizando EDMGEN.EXE. Hasta ahora, he podido generar archivos .csdl, .sssdl y .mdl, pero no puedo encontrar una manera de empaquetarlos a todos en un archivo .edmx. ¿Alguien ha probado este enfoque?

¿Fue útil?

Solución

El diseñador de EF necesita un proveedor de DDEX para poder trabajar.Parece que originalmente el proveedor DDEX solo se instaló en su versión experimental de VS2012.Cuando instale VS2013, no tiene las claves de registro para el proveedor de DDEX y el Diseñador EF no puede funcionar con su base de datos.

edmx es solo pegarse juntos CSDL MSL y SSDL.Suponiendo que está utilizando los esquemas V3 (es decir, su CSDL está en este espacio de nombres: xmlns="http://schemas.microsoft.com/ado/2009/11/edm") Puede simplemente pegar los contenidos de los archivos en esta plantilla (agregué comentarios qué archivo debe pegarse donde):

<?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>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top