【问题标题】:Generate edmx file from SQL query programmatically以编程方式从 SQL 查询生成 edmx 文件
【发布时间】:2014-10-26 06:46:58
【问题描述】:

我正在尝试找到一种从查询生成 edmx 文件的方法,我知道我们可以从数据库更新模型。但是,在我的例子中,我们将所有 SQL 定义脚本存储在一个文件中。我需要一种从这些脚本生成 edmx 的方法,而不是在数据库上运行脚本文件,然后再次从数据库生成 edmx。

【问题讨论】:

标签: .net entity-framework


【解决方案1】:

这通常不可能的原因是edmgen 查询数据库实体及其属性的列表。但是脚本中没有“实体”或任何东西,只有 SQL 风格的文本。它需要被理解这种 SQL 风格的东西解析和执行(无论结果如何),以创建这些实体的某种表示,以便可以检查它们 - 即至少是一个半功能的 SQL 服务器。

如果您不想为完整的 MSSQL 安装和数据库部署而烦恼(我相信这是问题的主要原因),您可以使用与每个 VS 安装捆绑在一起的 SQL Server Compact。它将数据库保存在您指定的任何位置(如 BerkleyDB 或 SQLite)的单个文件中,之后您可以删除该文件。

Steve Lasker's Web Log - Creating your SQL Server Compact Edition database and schema in code 解释了一种在 .NET 代码中执行此操作的方法。还有一个第三方 sqlcmd 对应于 mssql compact - sqlcecmd,您可以直接从命令行执行相同操作。

Differences Between SQL Server Compact and SQL Server 列出了前者的限制。 DDL 最严重的一点是缺少程序、视图和高级索引。但它们无论如何都不会被 vanilla(不像高度定制的)实体框架使用。

【讨论】:

  • 感谢您向我详细说明 Entity Framework 无法做到的原因。
【解决方案2】:

不幸的是,没有直接的方法可以做到这一点。在 VS 2012 的早期开发过程中,曾一度可以使用实体框架的数据库项目,但该功能并未进入最终产品:

http://blogs.msdn.com/b/ssdt/archive/2012/03/09/ef-integration-removed-from-sql-server-data-tools.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2018-01-29
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多