簡體   English   中英

將對模型所做的更改提交給數據庫

[英]Committing changes made to a model to the database

我建立了一個模型,該模型使控制器成為了控制器(並且通過代理,使多個視圖可以在我第一次通過Web瀏覽器中的控制器瀏覽到視圖時在創建的表中查看,創建,刪除和編輯記錄),而不使用Visual Studio中的向導。

這可以按預期工作,但是隨后我對模型進行了更改,並嘗試了以下步驟將更改提交到數據庫:

  1. 我刪除了控制器
  2. 我刪除了包含用於創建/刪除/ etc記錄的各種cshtml頁面的View文件夾
  3. 我使用Visual Studio中的服務器資源管理器窗格從數據庫中刪除表
  4. 我根據模型(並通過代理各種視圖)重新創建了控制器
  5. 保存了所有
  6. 我重建了解決方案

完成上述操作后,我單擊了debug,然后瀏覽到控制器,期望實體框架重新創建我的表。 相反,我得到了這個錯誤:

無效的對象名稱“ dbo.FooBar”。 // FooBar是我的模型的名稱,因此是我的表的名稱

幾個問題:

  1. 在控制器/視圖/表全部創建並且可能對其進行更改之后,提交對模型所做的更改的正確方法是什么?
  2. 我該如何解決目前的狀況?

謝謝

您要使用的兩個軟件包是:

自動遷移(EFMigrations)

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

此功能擴展了您的項目,使其不僅可以首先使用代碼,還可以將對模型所做的更改遷移到數據庫。 我已經在生產中使用它,因為它已經超出beta了。

MVC腳手架

http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/

您可以下載現有的腳手架模板以根據模型創建視圖。 如果您的模型發生更改,這些視圖將自動更新。 從來沒有到過構建自己的模板的過程,而是來自Scott Hanselman的博客文章,該博客文章演示了如何做到這一點: http : //www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx

在Channel9上查看Steve Sanderson(Scaffolding)和Scott Hanselman(EF Migrations)的演講。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM