我最近开始使用ASP.NET MVC进行新项目开发,但对于这项技术并不很熟悉。我还处于非常早期的阶段,正准备自学如何使用Entity Framework处理我的数据访问代码。目前我只是在努力理解各种软件/工具/特性能做些什么,但我认为我在使用EF方面走上了正确的道路。
我正在寻找一种能够看到本地数据库和生产数据库之间差异(模式而非实际数据)并将其发布到我们本地网络中的SQL Server的工具或方法。在我看来,这类似于用于数据库的分布式版本控制系统(DVCS)。
传统上(像大多数人一样),我会在代码或存储过程中使用SQL编写自己的数据访问代码,并自己处理数据库方面的事务。然而,现在对我来说,这已经不再是可选项,因为我需要为开发和生产设置单独的环境,而我也没有足够的时间或愿望手动编写所有这些代码。Dev将位于Dev机器上,而Production将托管在我们本地网络上的服务器上。
我最近开始使用Visual Studio中的“发布”功能,并成功地将其设置为相当好的工作方式,将新版本发布到我的IIS服务器所查看的目录中以提供网站。
我使用Git和Sourcetree处理我的项目代码的DVCS,但我从未亲自使用过或找到过针对数据库类似的解决方案。起初,我认为我在寻找某种针对SQL Server的DVCS,但这并没有给我带来很大的收获。本质上,我只是想找一个工具,能够管理本地和生产数据库之间的版本差异,我认为这是Entity Framework能为我完成的。
对于数据库,我正在使用SQL Server。我还没有为此项目设置数据库,所以我认为采用Code First的EF是最好的方法。我想确保EF使用的是SQL Server中的数据库,我可以通过指定连接字符串来设置,而不是使用Visual Studio中的连接字符串。偶尔我需要通过SSMS进行数据库访问,以便进行索引和备份等操作,但我仍然希望EF承担大部分工作。
- 我能否通过我希望的方式使用Entity Framework实现我的目标?也就是说,是否有一种工具可以处理版本之间的数据库差异和更新?我不想弄清楚我在本地更改了哪些表/列等,并将其应用到生产数据库中,但我也不希望生产数据库中的数据发生变化,只想改变结构......
- 我希望任何人都能提供关于如何构建此设置的建议,甚至链接到设置教程。我相信我不是第一个想做这件事的人,也知道我不会是最后一个。