2012-05-01 32 views
0

所以我正在爲大學開發一個ASP.NET項目。我們必須將我們的代碼上傳到運行IIS和SQL Server 2008的服務器。我使用MVC Code-First EF編寫了我的項目。我知道實體框架系統需要創建數據庫才能正常工作的權限(您不能只給它一個空的數據庫並讓它填充數據)。這對我造成了一個問題,因爲我在共享SQL Server上沒有數據庫創建權限。有沒有辦法解決?ASP.NET MVC代碼 - 首先EF - 可能使用沒有數據庫創建權限的EF?

回答

0

您可以使用現有的數據庫,而不是讓EF爲您創建一個。我自己做了這個,但是隻有在使用EF遷移時纔會這樣做。否則,你會遇到缺少表格異常的問題,以及什麼不是。

使用遷移時,只需將您的連接字符串指向空數據庫,創建一個初始遷移以用您的模式填充數據庫,然後更新數據庫本身。

看到這個答案:How do I create a migration for an existing database in EntityFramework 4.3?

..這包括這個漂亮的鏈接開始使用EF遷移:http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/

這一切都是可以通過的NuGet,如果你有機會獲得Pluralsight內容,我可以強烈推薦Julie Lerman關於這個話題的視頻。

如果您不想使用遷移,如果您只是使用SMMS手動創建數據庫對象,則仍然可以使用Code First,但顯然您需要手動完成保持模型和數據庫同步的工作。

2

由於您沒有權限,聽起來您需要讓DBA在您要部署的服務器上創建數據庫 - 這可以通過數據庫創建腳本或從一個數據庫創建腳本數據庫備份你的開發機器上的數據庫。這時你可以先指示EF代碼,不要試圖通過(之前你第一次訪問或者實際上任何地方的數據庫)中添加這一行到您的Global.asax中自動創建/更新數據庫

Database.SetInitializer<YourContextType>(null); 
相關問題