2014-09-02 100 views
3

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

+0

这应该是一个功能请求在https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/。 – 2014-09-02 09:25:05

回答

1

的原因,这通常是不可能的是edmgen查询DB实体及其属性的列表。但是,在脚本中没有“实体”或任何内容,只有具有SQL风格的文本。它需要被解析和执行(无论这种结果是什么形式),通过了解这种SQL的特性来创建这些实体的某些表示,以便它们可以被检查 - 即至少是一个半功能的SQL服务器。

如果你不想打扰完整的MSSQL安装和数据库部署(我相信这是问题的主要原因),你可以使用SQL Server Compact,而不是每个VS安装捆绑在一起。它将数据库保存在一个位于指定位置的单个文件(如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最激烈的一个是没有程序,观点和先进指数。但是,它们并未被香草使用(不同于大量定制的)实体框架。

+0

感谢您更详细地指出我的实体框架无法实现的原因。 – 2014-09-11 04:30:23