15

相当长的标题,但希望不言自明!

我正在使用 Entity Framework 5.0 和代码优先迁移在 Visual Studio 2013 中启动一个新项目。

我已经使用 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 文件中?

4

1 回答 1

16

Entity Framework Code First是一种管理 SQL Schema 的方法。事实的单一来源存在于您的代码库中。迁移添加了一种从模式的一个版本迁移到另一个版本的方法。SQL 模式是构建过程的副产品。

SQL Server 数据库项目也是管理 SQL 架构的一种方式。事实的单一来源存在于您的 SQL Server 数据库项目中。您可以使用模式比较来生成从一个版本移动到另一个版本的脚本。


鉴于这些技术的意图和功能重叠,将它们一起使用并没有真正意义。当您使用实体框架代码优先时,请尽可能利用迁移(并且当功能足以满足您的情况时)。

当您无法使用迁移时,您可以使用 SQL Server 数据库项目来管理架构并将它们保留在源代码管理中。

注意

如果您想使用 SQL Server 数据库项目,您应该考虑安装SQL Server Data Tools作为 SQL Server 数据库项目的替代品。数据工具是这些项目的更高级版本,即使它们现在可能需要 Visual Studio 2012 才能运行。我怀疑 Visual Studio 2013 的版本将在 Visual Studio 2013 达到 RTM 时可用

于 2013-10-07T11:21:04.090 回答