3

所以我遇到了一些問題,並想知道你是否可以幫助我。我非常新(這是我在這些語言中的第一個項目)MS MVC 2和實體框架4.0。我使用Model First方法和圖形設計器繪製了一個模型。我還沒有SQL數據庫,我認爲它只是工作斷開連接,但也許我忘了我已經指定了連接字符串。所以我開始使用EF中新創建的類型開始運行MVC組件。我試圖使用Repository模式以及Ninject進行依賴注入。所以我有很多時間不必擔心實際的數據存儲。這使我想到了我的問題:我現在就在這一點上。一般實體框架混淆

我認爲它附加到一個.mdf文件並運行SQLExpress實例,但我真的找不到任何支持。我沒有安裝SSMS,所以我無法弄清楚如何正確檢查。最終得到了啓動和運行,沒有分貝。所以,現在我很困惑,究竟是在哪裏實際連線,如果有的話。我認爲這太奇怪了,想要從頭開始。我爲模型生成了SQL腳本,並在SSMS中創建一個新的數據庫來運行該腳本。運行腳本,一切都很好。然後我進入VS並運行數據庫優先方案。因此,該模型現在顯示我所有的表格,並通過將它們指定爲關鍵字來有效地鎖定幾個字段。修正了這個問題,現在我又回到了首先解決讓我感到沮喪的問題。

我有一個用戶表有一個應該是Guid的userId字段,但在原始建模期間,我錯過了它,它是一個varchar字段。我一直無法修復它下面的映射,以將底層(不確定實際的術語)字段更改爲Guid。我改變了模型的類型,但沒有更新數據庫。這基本上使我處於一個奇怪的位置。我相信我應該允許EF在沒有我參與的情況下爲我管理SQL,但是如果這是真的,我該如何推動這樣的改變。每當我需要對模式進行更改時,是否限制刪除整個數據庫?

很抱歉,如果這是noobest的noob問題,但我想要弄清楚所有這些東西,可以真正使用一些輸入。我使用的最後一種語言是帶有ADO.Net類型數據集的ASP.Net 2.0。我最好改用Code First方法嗎?如果我這樣做,是否必須再次自己管理SQL?

我相信這是我的第一個問題,所以,如果我違反了我的道歉,我想我很清楚。

+0

[我是否應該使用實體框架4.0?](http://izlooite.blogspot.com/2011/04/should-i-ever-use-entity-framework-40.html) – 2011-04-23 15:32:20

回答

1

那麼-EF在Web.config文件中存儲連接字符串。如果您懷疑EF推動您刪除數據庫並在首先使用模型時創建一個新數據庫,這部分是正確的。好消息是,整個這個過程是由一個可以修改或替換的工作表驅動的。你不必自己做。您可以下載Entity Designer Database Generation Power Pack,其中包含幾個新的工作流程和模板,可通過模型優先方法增量構建數據庫。這有兩個缺點:

  • 您必須具有VS 2010 Premium或Ultimate,因爲它使用這些版本的數據庫功能。
  • 並非每個模型更改都可以逐步進行處理。任何可能導致數據丟失的情況都將以例外結束。我期望在將string修改爲Guid時會出現這種情況。這種情況下的解決方案是手動修改數據庫或將其刪除並從頭開始重新創建。

代碼第一次可能不會幫助你,因爲這種方法目前缺少任何數據庫演化,但是如果模型更改,它具有完全自動化的數據庫重新創建過程。

Btw。你不需要SSMS來檢查數據庫。 SQL服務器還提供一些工具(必須單獨安裝)使用命令行實用程序訪問數據庫 - osql或sqlcmd。您還可以在Visual Studio Professional和更高版本中使用服務器資源管理器。

+0

感謝您的領導。我有一個獨立的類庫來保存DAL,在你提到它找到數據源後,我在App.config中查找它。我今天在進一步閱讀中發現,在某些時候我必須從Web項目中將連接字符串連接到DAL,但這應該很容易。 對我來說不幸的是,我使用的是Web Dev 2010 Express,所以我無法利用這個電源包。我還沒有理解你提到的工作流程,但顯然,這將很快在我的清單上!感謝您的領導! – SenseiHitokiri 2011-04-19 05:00:37