以编程方式从SQL查询生成edmx文件

时间:2014-09-02 04:43:30

标签: .net entity-framework

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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代码中执行此操作的一种方法。还有mssql compact - sqlcecmd的第三方sqlcmd对应物,您可以使用它直接从命令行执行相同操作。

Differences Between SQL Server Compact and SQL Server列出了前者的限制。与DDL相关的最激烈的是缺乏程序,观点和高级指数。但无论如何,它们都不被香草使用(不像大量定制的)实体框架。