我有,我想我的用戶動態地創建類型的Web應用程序在運行時創建的類型......我可以做到這一點使用反射,但我不知道如何使用堅持該類型實體框架如何堅持使用實體框架
0
A
回答
2
1
您不能這樣做,因爲實體框架不會爲動態創建的類型映射元數據,對於新實體,上下文不會有ObjectSet
,並且數據庫不會爲您的新類型創建表。
爲EF元數據的集中存儲爲MetadataWorkspace類,但在EF的當前版本是不應該這個類在運行時進行修改。它不提供任何方法來做到這一點。 define MetadataWorkspace at runtime的唯一方法是修改SSDL(數據庫描述),MSL(映射描述)和CSDL(實體類描述)文件。因此,任何的「動態」的方法來EF指:
- 在運行時創建類型(Reflection.Emit的)
- 創建派生
ObjectContext
含有新ObjectSet
在運行時(Reflection.Emit的) - 修改數據庫以包含新的表
- 在運行時在運行時創建所有這些映射文件
- 負載映射文件,與創建
MetadataWorkspace
創建新EntityConnection
並把它傳遞到動態創建ObjectContext
派生類型的實例 - 寫代碼能夠與動態創建的實體合作
- 寫一些代碼,能夠堅持對新實體類型和新的對象上下文的信息,否則你不會有這些類型的可重新啓動應用程序
編輯:
您也可以使用@Yakimych提到的解決方法。序列化動態類型的實例並將其保存爲varbinary(二進制序列化)或varchar(xml序列化)。您將只需要簡單的表格,使用Id(PK)和序列化數據的列。您將通過Id查詢表並自行處理反序列化。您將無法通過類型特定的屬性查詢表。
+0
我認爲@ yakimych的方法會更簡單,我的方案....謝謝 – 2011-03-12 13:46:51
相關問題
- 1. 堅持實體框架查詢緩存
- 2. 實體框架4.1堅持一個getter
- 3. 實體框架 - 一般堅持枚舉?
- 4. 使用實體框架堅持模型綁定對象
- 5. 實體框架不堅持數據庫中的數據
- 6. 在Play框架中堅持JPA實體的最佳方法
- 7. 如何獲取所有堅持實體
- 8. 如何堅持很多實體(JPA)
- 9. JPA實體堅持另一個實體
- 10. 如何使用實體框架繼承?
- 11. 如何同時使用實體框架
- 12. 如何使用實體框架6
- 13. 如何使用實體框架
- 14. 如何爲使用實體框架
- 15. 如何使用實體框架
- 16. 如何使用實體框架
- 17. 如何使用實體框架
- 18. 如何使用實體框架
- 19. 如何使用實體框架
- 20. 如何與使用實體框架
- 21. 如何使用實體框架6
- 22. 會如何使用實體框架
- 23. Symfony的實體堅持空
- 24. servlet沒有堅持實體
- 25. Grails實體沒有堅持
- 26. 堅持斷開POCO實體
- 27. 如何使用EnitityHome persist方法在SEAM中堅持子實體?
- 28. 使用實體框架保存實體
- 29. hibernate - 如何一次堅持所有實體和子實體
- 30. 使用實體框架
你能否提供更多關於你有什麼要求和你想要做什麼的信息。只需要序列化你的對象並將它保存在例如XML列? – Yakimych 2011-03-11 12:16:31
你可以請我鏈接到任何這樣的實施... – 2011-03-12 13:44:01