Domanda

Attualmente usiamo Visual Studio 2012, EF 5.0 e NPGSQL 2.0.12.0.

Mi piacerebbe aggiornare a Visual Studio 2013 e NPGSQL 2.0.14.3 (sto bene con EF 5.0 per ora).

Attualmente usiamo la procedura guidata "Aggiorna Modello" che porta a modifiche allo schema e le alimentano nel file EDMX visualizzato nel Designer VS. Lo facciamo seguendo la procedura imbarazzante dell'utilizzo di DDEX in NPGSQL.Provider2 e avviando l'istanza di Visual Studio "sperimentale".

Ma questo non funziona più in Visual Studio 2013 (dopo aver aggiornato le voci del registro generate). Inoltre non funziona se cambio dbProvider a NPGSQL 2.0.14.3 in macchina.Config.

Sarebbe eccezionale se qualcuno potesse dirmi se hanno ottenuto questo per lavorare e come.

Come alternativa temporanea, sto pensando di aggiornare il file EDMX dallo schema utilizzando edmgen.exe. Finora, sono stato in grado di generare i file .csdl, .sdl e .mdl, ma non riesco a trovare un modo per pacchezzarli tutti in un file .edmx. Qualcuno ha provato questo approccio?

È stato utile?

Soluzione

L'EF Designer ha bisogno di un fornitore DDEX per essere in grado di funzionare.Sembra che il fornitore DDEX sia stato installato solo nella versione sperimentale di VS2012.Quando si installa VS2013 non si dispone delle chiavi di registro per il provider DDEX e il progettista EF non può funzionare con il proprio database.

EDMX sta solo incollando insieme CSDL MSL e SSDL.Supponendo che tu stia utilizzando Schemi V3 (cioè il tuo CSDL è in questo spazio dei nomi: xmlns="http://schemas.microsoft.com/ado/2009/11/edm") Puoi semplicemente incollare il contenuto dei file in questo modello (ho aggiunto commenti quale file dovrebbe essere incollato da dove):

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top