我有兩個模型;用戶和客戶端。用戶可以擁有多個客戶端,而客戶端擁有一個用戶。項目經理堅持要求每個用戶客戶端獨立表所以我必須爲每個創建的用戶動態生成新表。例如,用戶ABC將有一個名爲ABC_Clients的新表,用戶XXX將有一個名爲XXX_Clients的單獨表格等等。我的問題:我如何使用實體框架來做到這一點?我可以簡單地執行一個過程來創建新表,並使用ExecuteStoreQuery()
執行手動查詢,但它似乎不會拉回關係(即延遲加載),是否必須以某種方式構建我的查詢?實體框架4.1動態生成表
回答
這是優秀的設計。這將是非常容易使用,真的很好維護。恭喜你的經理,並告訴他做他的工作,讓你做你的工作。項目經理不是建築師,通常是技術知識欠佳的人。
有沒有辦法來支持這與EF。你必須完全用SQL(在這種情況下實際上是動態SQL)和舊的ADO.NET來完成它。 ExecuteStoreQuery
永遠不會返回關係 - 它無法做到這一點。延遲加載無法正常工作,因爲標準延遲加載基於使用Entity框架映射的靜態數據庫結構。您的Client
實體不能由EF映射,因爲它要求每個實體只能映射一次(=在一個表或一組相關表中以防止繼承或分裂)。您的Client
實體需要映射的次數與表User
中的用戶數量相同。
我同意。他實際上是一名開發人員,並且說他是從「經驗」中講話的:如果您將客戶表放入我的錯誤中,那麼每個人都會受到影響,就好像它們被分離出來一樣,並且一個客戶表被錯誤地丟棄,它只會影響一個用戶客戶端。我知道他是從哪裏來的,但這就是數據庫備份的目的,等等。無論如何,我還是很重視。問題,謝謝:-) – eth0
錯誤地刪除表格?那是什麼?這在正常的應用程序體系結構中不會發生,但它確實可能發生在您的應用程序必須具有刪除和創建表的權限的體系結構中。 –
@ eth0如果你有空閒時間在[The Daily WTF]上發佈這個設計(http://thedailywtf.com/) – Eranga
- 1. 實體框架4.1例外
- 2. 實體框架4.1和SQLite
- 3. 實體框架(4.1)關係
- 4. 實體框架4.1。從IDS
- 5. 實體框架4.1 - 選擇
- 6. 實體框架4.1 - EFTracingProvider
- 7. 實體框架4.1大量的表(715)
- 8. 實體框架 - 生成類
- 9. 實體框架4.1 DbContext生成器問題
- 10. 實體框架4.1的生成器的困惑
- 11. 實體框架4.1和預生成視圖
- 12. WPF表格生成器(實體框架)
- 13. 實體框架 - 自動生成vs手動創建實體
- 14. 存儲過程動態sql在實體框架4.1
- 15. 實體框架 - 動態sql
- 16. 動態表創建的實體框架
- 17. 使用實體框架動態表單
- 18. 實體框架自動生成的表名
- 19. 實體框架4.1的ObjectContext VS的DbContext
- 20. 實體框架4.1 InverseProperty屬性和ForeignKey
- 21. 實體框架4.1 - 交換數據庫
- 22. 實體框架4.1外鍵問題
- 23. 實體框架4.1虛擬屬性
- 24. 瞭解實體框架4.1約定
- 25. 實體框架4.1 T4輸出到IDbset
- 26. SaveChanges()實體框架問題4.1
- 27. 實體框架中的外鍵4.1
- 28. 實體框架4.1 SQL注入
- 29. 實體框架4.1堅持一個getter
- 30. 實體框架4.1插入錯誤
這個傢伙需要了解關於RDBMS設計的基本知識:) –