什麼是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. NHibernate 2.1代理工廠選項 - 有什麼區別和選擇?
- 5. HQLBasedQuery ProjectionQuery城堡ActiveRecord/NHibernate
- 6. NHibernate無法加載代理工廠
- 7. 代理NHibernate對象與城堡DynamicProxy燕子NH功能
- 8. 城堡設施NHibernateIntegration vs城堡設施NHibernate
- 9. 使用城堡NHibernate集成設施與城堡核心1.2
- 10. 單元測試的城堡類代理
- 11. 城堡溫莎控制器廠和
- 12. 城堡動態代理創建
- 13. 城堡2.5/NHibernate的/馬格南/ NServiceBus
- 14. 爲什麼NHibernate中的SessionFactory是一個工廠?
- 15. NHibernate的,的WinForms,溫莎城堡:會話管理
- 16. 流利的NHibernate - 城堡動態代理 - 本地主機上的信任問題
- 17. 什麼是OOP工廠
- 18. 城堡溫莎工廠在解決T型暗示<T>?
- 19. MVC DI城堡類型工廠設施與參數
- 20. 城堡windsor控制器工廠和存儲庫不解決
- 21. 城堡 - 使用工廠方法和瞬態生活方式
- 22. 城堡溫莎 - 註冊與工廠方法
- 23. 接口的城堡動態代理,而不是派生類
- 24. ASP MVC +城堡+ nHibernate如何連接?
- 25. 建築問題asp.net mvc,nhibernate,城堡
- 26. 溫莎城堡:ActA做什麼?
- 27. 什麼是溫莎城堡的Depends在Unity中的等值?
- 28. 我的城堡ActiveRecord的問題是什麼web.config
- 29. 城堡動態代理是否可以截取值類型?
- 30. 使用城堡溫莎創建一個對象,而不是一個工廠類