什麼是NHibernate中的Castle代理工廠?它的任務是什麼?代理在這種情況下意味着什麼?什麼是NHibernate的城堡代理工廠?
8
A
回答
11
可以使用城堡(除其他外,您可以選擇,也可以使用LinFu,Spring.NET ...)來創建實體的動態代理。
默認情況下,NHibernate使用動態代理來表示你的實體;通過這樣做,當您從數據庫中檢索某個實體時,它將能夠返回一個對象給您,而不會填充所有的屬性。通過使用動態代理,只有在您真正引用屬性後纔會填充實體。
(所以它是一種惰性加載;不要與延遲加載集合/關聯混淆)。
此行爲是爲什麼NHibernate希望你創建每個屬性爲虛擬的默認情況下:NHibernate將創建一個新的類使用這個城堡(或LinFu,...)代理提供程序,從您的實體繼承,它會覆蓋所有屬性,以便它可以「注入」從數據庫中檢索必要數據所需的代碼。
您可以通過在實體映射中指定'lazy = false'來禁用此行爲。 (雖然我認爲即使你禁用了這個功能,NHibernate仍然會要求你使用其中一個代理工廠)。
3
當你從ISession中選擇一個實體時,你並不是真正的實體實例 - 你正在獲取代理對象。 這個代理對象會繼承你的實體並由NHibernate用來跟蹤對這些字段所做的更改。
3
相關問題
- 1. NHibernate的3和城堡代理:myList.Contains壞
- 2. 城堡溫莎配置工廠
- 3. 城堡溫莎輸入工廠古怪
- 4. 城堡工廠短期生活依賴
- 5. 溫莎城堡工廠實施
- 6. 什麼是雲代工廠?
- 7. NHibernate 2.1代理工廠選項 - 有什麼區別和選擇?
- 8. 城堡:代表性的工廠生活方式?
- 9. HQLBasedQuery ProjectionQuery城堡ActiveRecord/NHibernate
- 10. 代理NHibernate對象與城堡DynamicProxy燕子NH功能
- 11. NHibernate無法加載代理工廠
- 12. 使用城堡NHibernate集成設施與城堡核心1.2
- 13. 城堡設施NHibernateIntegration vs城堡設施NHibernate
- 14. 單元測試的城堡類代理
- 15. 城堡2.5/NHibernate的/馬格南/ NServiceBus
- 16. 城堡溫莎控制器廠和
- 17. 城堡動態代理創建
- 18. 城堡動態代理想攔截Object.GetType()
- 19. 城堡溫莎先進的工廠登記
- 20. 組件特定的城堡溫莎輸入工廠
- 21. 如何解決溫莎城堡工廠的依賴問題?
- 22. NHibernate的,的WinForms,溫莎城堡:會話管理
- 23. 流利的NHibernate - 城堡動態代理 - 本地主機上的信任問題
- 24. ASP MVC +城堡+ nHibernate如何連接?
- 25. 建築問題asp.net mvc,nhibernate,城堡
- 26. 城堡溫莎多生活方式(Nhibernate)
- 27. Javascript:什麼是工廠?
- 28. 什麼是OOP工廠
- 29. 接口的城堡動態代理,而不是派生類
- 30. 城堡windsor控制器工廠和存儲庫不解決