这是一个与LINQ to SQL类相关的最佳实践问题,并且有两个SQL服务器 - 生产和开发。
我们有一个MVC 4项目,我们在Azure Cloud上发布。我们有两个连接字符串,我们自动切换。一个用于生产实例,一个用于在localhost上运行,我们在其中更改数据库的结构并对其进行测试。这部分使用System.Web.HttpContext.Current.Request.IsLocal
我们有使用LINQ to SQL类的数据库上下文,但就目前而言,我们无法弄清楚如何自动切换DBML连接字符串。或者可能有两个DBML - 一个用于生产DB,另一个用于测试。
例如,我们在表格中添加一个字段,刷新我们连接到测试数据库的DBML文件,并进行实验。当我们需要发布项目时,我们需要首先更改生产服务器上的SQL结构,手动更改DBML的连接字符串,然后发布。
这是最简单的方法吗?
答案 0 :(得分:1)
不,你应该考虑使用webdeploy加上xdt transforms on your web.config。
为了更加轻松,请考虑使用linq2entities/entity framework with migrations,而不是linq2sql,它允许您在代码中自动升级数据库,因此您不必手动更新部署服务器上的架构。
使用这3种技术,一旦完成设置,您应该能够将部署的痛苦减少到2或3次(这本身可能非常痛苦)。