Entity framework EF 5将模型同步到数据库项目

Entity framework EF 5将模型同步到数据库项目,entity-framework,Entity Framework,目前,我们使用EF4.1,采用模型优先的方法,然后使用Entity Designer数据库生成电源包将模型同步到Visual Studio 2010数据库项目。在此基础上,我们使用数据库项目的部署功能来升级实际的数据库。这个很好用。我不得不编写一个干净的脚本来清除数据库项目中的外部注释,但这一切都解决了 问题是SQL Server 2012。我做了一个测试,安装了SQLServer2012,我们的VS2010数据库项目不想部署到它。它说Sql Server 2012不是受支持的目标版本。好的,这

目前,我们使用EF4.1,采用模型优先的方法,然后使用Entity Designer数据库生成电源包将模型同步到Visual Studio 2010数据库项目。在此基础上,我们使用数据库项目的部署功能来升级实际的数据库。这个很好用。我不得不编写一个干净的脚本来清除数据库项目中的外部注释,但这一切都解决了

问题是SQL Server 2012。我做了一个测试,安装了SQLServer2012,我们的VS2010数据库项目不想部署到它。它说Sql Server 2012不是受支持的目标版本。好的,这意味着我需要安装SSDT并将项目转换为Sql数据库项目。这里的问题是没有一个工具可以将实体模型同步到SSDT项目。实体设计器数据库生成电源组仅为VS 2010数据库项目而不是SSDT数据库项目构建

这使我们无法升级到SQL Server 2012和SSDT项目

我非常喜欢数据库项目,因为它们允许我们对数据库模式进行源代码控制。我们可以添加额外的东西,比如报告存储过程等等

我看过代码优先迁移,但似乎没有SSDT项目那么丰富。我不能100%确定您是否可以将该迁移与edmx设计器一起用于模型优先实现

那我们该怎么办


Eric

事实上,从edmx同步到SSDT数据库项目是不可能的。您是否考虑过从edmx构建数据库,并使用SSDT的模式比较工具将其同步到数据库项目


与上一个过程的唯一区别是构建这个中间数据库。

你说得对。我修改了数据库生成模板以创建一个脚本,该脚本删除并创建一个本地数据库,该数据库是EDM模型的完美表示。然后将新数据库与数据库项目进行比较,并接受对目标数据库项目的更改。这甚至比VS 2010数据库项目同步功能更好,因为我不必管理注释,而且部分比较功能允许我删除EDM中删除的表。之前,我不得不从项目中手动删除这些内容。谢谢你的建议。很高兴它有帮助。我发现这篇博客文章描述了一个类似的用例: