0

目前我们使用 Visual Studio 2012、EF 5.0 和 Npgsql 2.0.12.0。

我想升级到 Visual Studio 2013 和 Npgsql 2.0.14.3(我现在可以使用 EF 5.0)。

目前我们使用“更新模型”向导,该向导接受模式中的任何更改并将它们提供给在 VS 设计器中查看的 edmx 文件。我们通过在 Npgsql.Provider2 中使用 DDEX 并启动“实验性”Visual Studio 实例的尴尬过程来做到这一点。

但这在 Visual Studio 2013 中不再有效(更新生成的注册表项后)。如果我在 machine.config 中将他的 DbProvider 更改为 Npgsql 2.0.14.3,它也不起作用。

如果有人能告诉我他们是否让这个工作以及如何工作,那就太棒了。

作为临时替代方案,我正在考虑使用 edmgen.exe 从架构中更新 edmx 文件。到目前为止,我已经能够生成 .csdl、.ssdl 和 .mdl 文件,但是我找不到将它们全部打包成 .edmx 文件的方法。有没有人尝试过这种方法?

4

1 回答 1

0

EF 设计器需要 DDEX 提供程序才能工作。看起来最初 DDEX 提供程序仅安装在您的 VS2012 实验版本中。安装 VS2013 时,您没有 DDEX 提供程序的注册表项,EF 设计器无法使用您的数据库。

Edmx 只是将 csdl msl 和 ssdl 粘合在一起。假设您使用的是 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>
于 2014-01-09T21:21:35.553 回答