我正在开发一个 ASP.NET Web 应用程序,我们是一个小团队(4 名学生),我们无法访问专用服务器来托管数据库实例。因此,对于这个 Web 应用程序,我们决定将数据库文件放在 App_Data 文件夹中。
问题是我们的项目是在 TFS 上进行源代码控制的,所以每次打开解决方案并尝试启动 Web 应用程序时,我们都会收到一个说数据库是只读的异常。这是合乎逻辑的,因为数据库文件不会自动签出。
是否有一种解决方法可以避免每次打开解决方案时手动签出数据库文件?
谢谢。
我正在开发一个 ASP.NET Web 应用程序,我们是一个小团队(4 名学生),我们无法访问专用服务器来托管数据库实例。因此,对于这个 Web 应用程序,我们决定将数据库文件放在 App_Data 文件夹中。
问题是我们的项目是在 TFS 上进行源代码控制的,所以每次打开解决方案并尝试启动 Web 应用程序时,我们都会收到一个说数据库是只读的异常。这是合乎逻辑的,因为数据库文件不会自动签出。
是否有一种解决方法可以避免每次打开解决方案时手动签出数据库文件?
谢谢。
切勿签入 MDF 文件。您应该使用创建所需表和其他数据库对象的部署脚本来开发您的项目。切勿直接从 VS Server Explorer 修改 MDF。对数据库模式使用基于版本的方法。
我知道你会说“但很难”,但相信我,VS 向导指导你的替代方案要糟糕得多。不仅从团队开发的角度来看,而且从部署的角度来看也是如此。部署站点的 v1 后,您将进行更改并希望部署 v1.1 或 v2。每次,您都会面临同样的困境:您有 4 个 MDF 文件,每个团队成员登记一个,部署站点上一个,根本没有办法对齐模式。您最终会要求使用 SQL 比较工具(如 SQL Compare),但它们要花费大量资金,而且在维护 SQL 模式方面还远非完美。
此外,将脚本作为数据库源也将与所有其他源代码控制好东西保持一致,例如追踪谁更改了什么以及何时更改。
如果您能够为 Visual Studio 安装“Visual Studio Team System Database Edition”附加组件(以前称为“Visual Studio Team Edition for Database Professionals”,以前称为“DBPro”),您可以将当前数据库导入 Visual Studio 数据库项目,它可以成为您整体 VS 解决方案的一部分。
然后,这允许您在 Visual Studio 中管理架构对象(表、存储过程、权限等),并将您的数据库架构与 TFS 很好地集成。
它还允许您将 VS 项目中的模式部署到数据库服务器,自动处理修改而不会导致数据丢失(或者如果数据丢失则失败)。
VS 2008 的附加组件位于: http ://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en