【问题标题】:How to create EDMX from CSDL+SSDL+MSL files?如何从 CSDL+SSDL+MSL 文件创建 EDMX?
【发布时间】:2015-07-30 19:17:13
【问题描述】:

我正在使用 EdmGen.exe 自动生成文件:

  • 数据库.cs
  • Views.cs
  • Concept.csdl
  • Storage.ssdl
  • Mapping.msl

如何从所有这些中生成 EDMX 文件,以便将其包含到我的 Visual Studio 项目中?

我正在尝试以不需要使用 Visual Studio IDE 的方式自动更新 EDMX,即完全从命令行进行。

原因

我的开发团队需要开始使用一个庞大的 Oracle 数据库,该数据库是很久以前设计的,并且会进行小的、不频繁的更改。 Oracle 的 ODP 实体框架似乎是一个非常适合这项工作的平台,但他们的 Visual Studio 集成工具却是一场灾难,我们正试图像瘟疫一样避免这种情况。我被要求完全从命令行编写自动 EF 模型生成脚本。从 CSDL+SSDL+MSL 文件生成新的 EDMX 是我卡住的地方。

【问题讨论】:

    标签: .net entity-framework-6 edmx edmgen


    【解决方案1】:

    您想要的远远超出 EF 的左侧字段。我很确定您将不得不编写一些自定义工具,因为 EDMX 生成并不是我看到 Visual Studio 要求让我认为它是 IDE 本身的一部分。

    我在这方面找到了一些资源:

    查看我在本地拥有的 EDMX,它基本上只是您已经生成的那些文件的逻辑混搭,因此您应该能够毫不费力地找出并编写一个生成器。当然,这会很乏味。

    底线,考虑到代码优先或数据库优先方法的典型 EF 开发策略,我只是认为没有工具可以为您执行此操作。这里规定的方法是代码优先,但我完全明白你为什么不想重新创建它们。

    也就是说,除非您出于某种原因(可视化或其他)绝对需要 EDMX,否则我实际上只会模板化您的模型并执行伪“代码优先”方法,甚至不必担心 EDMX 工具链。

    祝你好运。

    【讨论】:

    • 几乎很难相信 Entity Framework 不能在没有 UI 的情况下使用。我认为也许有一种方法可以在没有 EDMX 的情况下生成所有必要的模型文件?就像,带有参数 /mode:FromSsdlGeneration
    • 您完全可以在没有 UI 的情况下“使用实体框架”。它被称为代码优先。你不想那样做。您始终可以尝试将已有的文件插入标准 EF 连接字符串。 EDMX 唯一能让你超越设计者的就是一个具体的DbContext 版本,它将你的实体包装成EntitySet<> 对象。
    • 我可能问错了关于获得 EDMX 的问题,但它在 .NET 中非常可行。我发现其余步骤只需借助 .NET 随附的用于 T4 模板转换的 TextTransform.exe 实用程序即可完成。只需要正确的 T4 模板。
    • 接受答案 5 年后,不记得这是怎么回事:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    相关资源
    最近更新 更多