标题相当长,但希望不言自明!
我正在Visual Studio 2013中使用Entity Framework 5.0开始一个新项目,首先是代码迁移。
我使用git将我的项目连接到TFS Online - 我有兴趣尝试TFS Online,因为它为5个免费项目(类似于BitBucket)提供源代码管理,但具有强大的Visual Studio集成。
我没有在Visual Studio 2013中使用过数据库项目,而且我找不到有关这些内容如何组合在一起的信息。
我正在努力实现的是创建一个包含2个项目的简单Visual Studio解决方案 - 一个是MVC .NET项目,另一个是数据库项目。我的目标是代码首次迁移将对数据库项目中的sql脚本进行必要的更改(在git源代码控制下进行管理)。我的web.config指向一个本地.mdb文件作为我的数据库,这是我在EF中运行update-database时更新的内容,这是我认为的问题。
如何指示EF使用我的数据库项目进行代码迁移,以及在调试解决方案时如何自动将开发数据库构建到本地.mdb文件中?
答案 0 :(得分:16)
实体框架代码优先是一种管理SQL架构的方法。真相的唯一来源存在于您的代码库中。迁移添加了一种从架构的一个版本移动到另一个版本的方法。 SQL模式是构建过程的副产品。
SQL Server数据库项目也是管理SQL架构的一种方法。真相的唯一来源存在于SQL Server数据库项目中。您可以使用模式比较来生成从一个版本移动到另一个版本的脚本。
鉴于这些技术在其意图和功能上存在重叠,因此将它们结合使用并不合理。当您使用实体框架代码优先时,尽可能利用迁移(当功能足以满足您的情况时)。
如果您无法使用迁移,则可以使用SQL Server数据库项目来管理架构并将其保留在源代码管理中。
注意:
如果要使用这些,请考虑安装SQL Server Data Tools作为SQL Server数据库项目的替代。数据工具是这些项目的更高级版本,即使它们可能要求Visual Studio 2012立即运行。我怀疑当Visual Studio 2013点击RTM时,Visual Studio 2013的版本将可用。