我使用EF 4與模型優先...我從模型生成數據庫。 我將如何在這種情況下使用存儲過程?他們也應該與數據庫自動生成..?EF模型首先使用存儲過程
3
A
回答
4
您沒有任何帶模型的存儲過程,因此不會生成。他們怎麼會?存儲過程是數據庫中定義的邏輯,EF不知道該過程,因此無法爲您創建它們。
如果您想使用存儲過程,請先從模型創建數據庫,然後再交換到數據庫。然後您可以手動定義您的程序並將其映射到模型。一旦你這樣做了,你不能先回到模型。
編輯:
有可能是多了一個解決方案,但它是不是很好。您將使用所有存儲過程來維護自定義SQL腳本(無論如何您都必須編寫它們),並且您將修改創建數據庫的工作流程,以便在創建數據庫後運行腳本。模型首先使用T4模板生成SQL和Workflow Foundation 4以處理數據庫創建的整個過程。 T4模板和工作流程都可以定製。問題是這一步將爲你添加存儲過程,但它不會將它們映射到EDMX中。
1
拉迪斯拉夫是正確的,但我發現了一個可能的解決方法。我已經測試過這個,它能正常工作,但是不知道是否有副作用。
- 下載並安裝實體設計器數據庫生成電源包(如果您還沒有它,當然)。
- 通過執行以下操作將您的數據庫更新到最新版本的模型(如果您已經知道以下內容,那麼對於那些不知道的人):
A.右鍵單擊設計器並選擇Generate Database From型號
B.在生成的對話框中,從左側選擇生成遷移SQL和部署選項。 (選擇此選項後,請務必點擊頂部的「選擇工作流....」按鈕)。
C.點擊下一步,你應該看到它做的東西。 - 在數據庫中創建您的存儲過程。
- 升級模型,從
現在,你的模型和數據庫同步。訣竅是,在未來,無論何時您想先更新數據庫或模型,只需重複步驟2,3和4.
您現在擁有兩全其美!一個字,但我會確保你有最新版本的電源包(你必須從Windows控制面板卸載舊版本,然後重新下載最新版本並安裝它。如果你沒有更新,你有VS2010 SP1,那麼當你選擇生成數據庫電源組將不顯示必要的對話框,你會失去你的存儲過程更可能。
希望你喜歡這個。 3.
相關問題
- 1. EF 4.2代碼首先存儲過程模型更改錯誤
- 2. 首先使用MVC存儲庫模式的EF模型
- 3. EF代碼首先調用具有複雜返回類型的存儲過程
- 4. 首先EF5模型 - 存儲圖像
- 5. 存儲庫模式,使用存儲過程的EF
- 6. 從EF 6.0調用存儲過程代碼首先不插入記錄
- 7. 強制EF 6使用模型首先創建表格
- 8. EF存儲過程
- 9. 插入第一組數據到EF代碼 - 首先使用存儲庫模式。
- 10. 從EF模型首先到代碼優先
- 11. 在EF中使用存儲過程(MVC4)
- 12. 首先在EF核心1.0上的多對多關係首先與模型?
- 13. MySql的MVC3 EF代碼先用存儲過程
- 14. 使用SimpleMembership與EF模型優先
- 15. EF 4.1的存儲過程
- 16. 異常在EF使用代碼首先
- 17. EF 6數據庫首次存儲過程
- 18. EF代碼首先具有存儲庫和工作單元
- 19. EF代碼首先指定如何存儲標量屬性
- 20. EF(6.1)代碼優先存儲過程問題
- 21. EF 4.1代碼優先:執行存儲過程並返回IDENT
- 22. EF 6代碼優先:如何更新存儲過程?
- 23. 首先使用Entity Framework 6代碼調用Oracle中的存儲過程
- 24. MVC4 EF DB首先 - 如何訪問模型外鍵(ICollection)
- 25. MVC 5 DB首先EF顯示3類視圖模型(DAL)
- 26. 插入多對多表EF模型首先
- 27. EF 6代碼首先從數據庫模型生成錯誤
- 28. EF代碼首先,如何反映模型
- 29. 用EF執行存儲過程5
- 30. EF 4.1存儲過程不可用?
這就是我害怕... – SolarX
我增加了一個解決方案 –
我有一個T4模板,可以從EDMX文件生成所有必需的SP的SQL。 – SolarX