我试图找到一种从查询生成edmx文件的方法,我知道我们可以从数据库更新模型。但是,就我而言,我们将所有SQL定义脚本存储在一个文件中。我需要一种从这些脚本生成edmx的方法,而不是在数据库上运行脚本文件,然后再从数据库生成edmx。
答案 0 :(得分:1)
不幸的是,没有直接的方法来做到这一点。在VS 2012的早期开发过程中,可以短暂地使用带有实体框架的数据库项目,但该功能没有进入最终产品:
答案 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相关的最激烈的是缺乏程序,观点和高级指数。但无论如何,它们都不被香草使用(不像大量定制的)实体框架。