2011-07-08 32 views

回答

4

您沒有任何帶模型的存儲過程,因此不會生成。他們怎麼會?存儲過程是數據庫中定義的邏輯,EF不知道該過程,因此無法爲您創建它們。

如果您想使用存儲過程,請先從模型創建數據庫,然後再交換到數據庫。然後您可以手動定義您的程序並將其映射到模型。一旦你這樣做了,你不能先回到模型。

編輯:

有可能是多了一個解決方案,但它是不是很好。您將使用所有存儲過程來維護自定義SQL腳本(無論如何您都必須編寫它們),並且您將修改創建數據庫的工作流程,以便在創建數據庫後運行腳本。模型首先使用T4模板生成SQL和Workflow Foundation 4以處理數據庫創建的整個過程。 T4模板和工作流程都可以定製。問題是這一步將爲你添加存儲過程,但它不會將它們映射到EDMX中。

+0

這就是我害怕... – SolarX

+0

我增加了一個解決方案 –

+0

我有一個T4模板,可以從EDMX文件生成所有必需的SP的SQL。 – SolarX

1

拉迪斯拉夫是正確的,但我發現了一個可能的解決方法。我已經測試過這個,它能正常工作,但是不知道是否有副作用。

  1. 下載並安裝實體設計器數據庫生成電源包(如果您還沒有它,當然)。
  2. 通過執行以下操作將您的數據庫更新到最新版本的模型(如果您已經知道以下內容,那麼對於那些不知道的人):
    A.右鍵單擊設計器並選擇Generate Database From型號
    B.在生成的對話框中,從左側選擇生成遷移SQL和部署選項。 (選擇此選項後,請務必點擊頂部的「選擇工作流....」按鈕)。
    C.點擊下一步,你應該看到它做的東西。
  3. 在數據庫中創建您的存儲過程。
  4. 升級模型,從

現在,你的模型和數據庫同步。訣竅是,在未來,無論何時您想先更新數據庫或模型,只需重複步驟2,3和4.

您現在擁有兩全其美!一個字,但我會確保你有最新版本的電源包(你必須從Windows控制面板卸載舊版本,然後重新下載最新版本並安裝它。如果你沒有更新,你有VS2010 SP1,那麼當你選擇生成數據庫電源組將不顯示必要的對話框,你會失去你的存儲過程更可能。

希望你喜歡這個。 3.