这是一个关于LINQ to SQL类的最佳实践问题,有两个SQL服务器——生产和开发。
我们有一个MVC 4项目,我们在Azure云上发布。我们有两个可以自动切换的连接字符串。一个用于生产实例,另一个用于在本地主机上运行,我们在本地主机上更改DB的结构并对其进行测试。使用System.Web.HttpContext.Current.Request.IsLocal
我们有使用LINQ到SQL类的DB上下文,但是现在,我们还不能弄清楚如何自动切换DBML连接字符串。或者可能有两个数据库—一个用于生产数据库,一个用于测试。
例如,我们在表中添加一个字段,刷新连接到测试DB的DBML文件,并对其进行实验。当我们需要发布项目时,我们需要首先在生产服务器上更改SQL结构,手动更改DBML的连接字符串,然后发布。
这是最简单的方法吗?
不,你应该考虑在你的web.config中使用webdeploy和xdt转换。
为了更方便,考虑使用带有迁移的linq2entities/entity框架,而不是linq2sql,它允许您在代码中自动升级数据库,这样您就不必手动更新部署服务器上的模式。
使用这3种技术,您应该能够将部署的痛苦减少到2或3次点击,一旦您设置好了(这本身可能是相当痛苦的)。