如何使用Entity Framework 4 Code-First定義數據庫視圖?我無法在任何地方找到任何有關此事的信如何使用Entity Framework 4 Code-First定義數據庫視圖?
回答
這是因爲您無法使用代碼優先方法定義數據庫視圖。數據庫視圖是在現有表/函數之上使用SQL查詢的數據庫結構。你不能先用代碼定義這樣的結構。
如果您想查看,您必須通過在自定義初始化程序中執行CREATE VIEW
SQL腳本手動創建它 - 它將類似於this answer。請注意,如果您想將實體映射到視圖,這不會對您有所幫助。在這種情況下,您可能必須首先刪除由EF創建的表,然後使用相同的名稱創建視圖(我沒有嘗試過,但它可以實現)。另外請注意,並非每個視圖都是udpatable,因此您最有可能獲得只讀實體。
要做一個視圖你創建模型,然後在初始化器中運行SQL語句直接創建與第一行代碼的上下文視圖,然後在上下文中重寫OnModelCreating並運行第二行的代碼來忽略模型。
context.Database.ExecuteSqlCommand(Resources.<resourcename>);
modelBuilder.Ignore<modeltype>();
這個工作,我喜歡它,因爲它消除了需要刪除EF創建的表。但是應該指出的是,這種方法不能在EF模型中使用視圖。 – 2012-06-19 10:20:59
@StephanKeller這是正確的,最終由於EF代碼優先方法的侷限性,我最終不得不回到老式的EDMX。說實話,如果你的應用程序做了什麼,你將無法使用EF代碼優先的方法。但最終不應該那麼令人驚訝,因爲自動化只能走得太遠。所以+1。 – 2012-06-19 11:20:55
- 1. 我們可以在Entity Framework中映射數據庫視圖嗎?
- 2. 確實Entity Framework支持數據庫視圖?
- 3. 如何使用Entity Framework在本地保存數據庫
- 4. 使用WebApi&Entity Framework從數據庫獲取表數據6.XX
- 5. Connection.BeginTransaction和Entity Framework 4?
- 6. Entity Framework 4和Velocity
- 7. 如何使用linq/Entity Framework綁定gridview?
- 8. 使用Entity Framework時與元數據相關的異常4
- 9. 用Entity Framework 4創建blob屬性?
- 10. 如何用Entity Framework Core可視化地設計我的數據庫?
- 11. Entity Framework 4 INNER JOIN幫助
- 12. 可以使用Entity Framework來生成SQL Server Compact數據庫
- 13. ASP.NET MVC&Entity Framework:如何在視圖中呈現自定義模型?
- 14. 使用Entity Framework 4.1和SQLITE
- 15. 如何在Entity Framework和ASP.NET MVC 4中使用groupby子句?
- 16. 如何從Entity Framework中的.edmx文件生成數據庫?
- 17. 使用SQL Compact 4和Entity Framework 4部署WPF?
- 18. 如何在不使用App.config的情況下使用Entity Framework
- 19. 使用Entity Framework測試插入數據庫
- 20. 使用現有數據庫時的Point of Entity Framework配置?
- 21. 使用Entity Framework和Dapper模擬數據庫
- 22. 在C#中使用Entity Framework搜索數據庫
- 23. 使用Entity Framework反向工程SQL Server Compact Edition數據庫
- 24. 使用Entity Framework複製sql server數據庫?
- 25. 使用Entity Framework 4和Repository Pattern的多層體系結構
- 26. Code First Entity Framework
- 27. orm with entity framework 4 and code first
- 28. 如何從Entity Framework數據庫獲取對象列表?
- 29. 在Entity Framework中使用Entity Framework作爲Sharepoint 2010中Web部件的數據源
- 30. 如何使用Entity Framework Code First CTP5按年查詢相同的數據庫表?
是的,你是對的。事實上,我已經意識到,在代碼中定義視圖並沒有太多意義。 :) – 2011-05-05 08:33:34
我使用EF構建數據庫時,在項目的初始化程序中實現了「刪除表並添加視圖」。沒有多少樂趣,但確實有效。如果那樣會使你遷移是一個懸而未決的問題。我正在尋找一種更清晰的方法來告訴EF Code First * not *生成特定表格。 – jlo 2012-06-07 18:15:38
@Ladislav這就是爲什麼這個新的EF代碼優先的框架是唯一可行的,如果你的應用程序沒有複雜性,除了房屋數據以外沒有其他任何事情。如果應用程序實際上做了什麼 - 您將不得不堅持使用EDMX或您選擇的其他ORM系統。 – 2012-06-19 11:23:10