2013-05-26 49 views
0

我打算使用代碼優先的方法使用ASP.NET MVC4創建一個Web應用程序。ASP.NET MVC 4代碼使用SQL Server 2012的第一個解決方案設置

我使用的是Visual Studio 2012,我有SQL Server 2012.我想要做的是以我可以使用SQL Server而不是默認的SQL Express或localDB的方式設置解決方案。如果對模型進行了任何更改並使用某些測試數據對數據庫進行種子處理,我希望解決方案能夠重新生成數據庫。

我已經經歷了一堆教程,他們似乎都在使用SQL Express或LocalDB數據庫。在第一次運行SQL Server時,我能夠獲得生成數據庫的解決方案,但是在對模型進行更改後,例如從'dbo'更改模式名稱以允許說'測試'或更改表名,它似乎沒有拿起這些變化。

任何人都可以給我一些見解,我如何能夠實現這一點?

感謝

回答

1

所有你需要做的是在指向您的SQL服務器的Web.config連接字符串它使用該服務器實例。

在型號變更上更新,看看DropCreateDatabaseIfModelChanges。 在您的Global.asax你可以設置你的數據庫初始化這樣

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContext>());

您將需要一個using語句太

using System.Data.Entity;

有一個免費的視頻指南MVC4由斯科特·艾倫它可以給你更多關於Migrations和Code First的信息(這是你所問的)。視頻指南的第4部分有一個關於數據遷移的13分鐘的細分,這是一個完整的步驟。如果您可以抽出時間,請留意詳細的指南。 http://www.asp.net/mvc/videos/pluralsight-building-applications-with-aspnet-mvc-4

我可能會指出這隻對開發有用,而且沒有辦法讓它在生產中工作,因爲你會丟失數據。如果您需要適合生產環境的東西,請查看SSDT(SQL Server數據工具)。您可以將數據庫作爲解決方案中的SQL項目進行管理,並使用DACPAC文件部署更新。該文件管理生產中的所有更新,並可設置爲防止數據丟失。您可以從項目中更改和部署您的Db,並仍然使用帶有數據庫優先和EF模型的EF。您所做的只是在Db項目中進行更改,然後點擊調試以更新測試Db。發佈時,您可以選擇導出DACPAC以進行實時更新。