2013-01-10 22 views
0

這是與LINQ to SQL類和具有兩個SQL服務器的最佳實踐的問題 - 生產和發展。LINQ to SQL類和分期主場迎戰生產

我們有一個MVC 4項目,這是我們在Azure雲發佈。我們有兩個連接字符串,我們可以自動切換。一個用於生產實例,另一個用於在localhost上運行,其中我們更改數據庫的結構並對其進行測試。這部分工作很好使用System.Web.HttpContext.Current.Request.IsLocal

我們有我們的數據庫上下文使用LINQ to SQL類,但現在我們無法弄清楚如何自動切換DBML連接字符串。或者可能有兩個DBML--一個用於生產數據庫,另一個用於測試。

例如,我們在表格中添加一個字段,刷新我們連接到測試數據庫的DBML文件,並對其進行實驗。當我們需要發佈項目時,我們需要首先更改生產服務器上的SQL結構,手動更改DBML的連接字符串,然後發佈。

那是最簡單的方法是什麼?

回答

1

不,你應該看看使用webdeploy再加上xdt transforms on your web.config

爲了更簡單,不是使用linq2sql,而是考慮使用linq2entities/entity framework with migrations,它允許您在代碼中自動升級數據庫,因此您不必手動更新部署服務器上的模式。

使用這3種技術,您應該能夠將部署的痛苦減少到2或3次點擊,一旦您完成設置(本身可能會非常痛苦)。

+0

我不知道如果我得到你的權利。我們使用VS 2012中構建的Azure部署。與我所瞭解的WebDeploy相比,這非常容易。 –

+0

好的,我對Azure的部署知之甚少,但我懷疑你已經成爲那裏的一部分。假設您使用「發佈」對話框進行部署,您應該查看「數據庫」選項卡,該選項卡提供了使用不同連接字符串創建發佈配置文件的選項。 – spender