我有一個方法在我的服務中創建一些實體,在我調用我的存儲庫的Add方法的方法內,以便實體在我調用我的save方法時被持久化,我應該在服務類之外或在將實體添加到datacontext的方法內部調用Save方法?何時堅持您的業務實體在您的服務類
0
A
回答
1
服務類必須立志成爲自包含的,並且必須照顧爲其使用的存儲庫調用自己的save()方法。這樣,它允許從其消費者中抽取存儲庫。如果它選擇放棄存儲庫呢?如果被調用者負責執行save(),則被調用者()也必須改變。這會導致代碼脆弱。
但是,交易是另一回事。
如果被調用者已經啓動了服務類,則該服務類必須參與全局事務。在沒有全局事務的情況下,服務類必須啓動並結束自己的事務。因此,save()方法實際上只會在事務結束時「提交」,無論它是由服務類本身還是由被調用者啓動的。
0
我會問,爲什麼你會創建一些實體?有可能最終唯一的原因就是堅持下去。按照定義,你的服務類將是一個更好的觸發持久化過程的地方。數據上下文中的實體只應關注響應來自服務的命令。
相關問題
- 1. 堅持實施Windows服務
- 2. 確定爲您服務的AWS實例
- 3. 您何時需要WebService或Android服務?
- 4. 如何監控您的Web服務?
- 5. 您如何爲您的HTTPS服務啓用SSL會話?
- 6. 您已請求不存在的服務
- 7. 堅持Web服務密碼
- 8. 您可以實時查看SQL(服務器)表的內容嗎?
- 9. 堅持在Windows服務中託管的WCF服務? (即僅實例化一次)
- 10. 春天mvc如何測試我的服務堅持實體發佈請求
- 11. 如何將您上傳的文件存儲在您的服務器上?
- 12. 如何使用kubernetes服務連接到您的Cloud SQL實例?
- 13. 如何實施您自己的WHOIS服務器?
- 14. Symfony的實體堅持空
- 15. 邏輯何時屬於業務對象/實體,它何時屬於服務?
- 16. 如果您返回從業務層(或服務層,領域模型等)的BindingList?
- 17. 位置服務?檢測您的位置
- 18. 運行您自己的GAE服務器
- 19. 您應該何時堅持使用新技術進行培訓?
- 20. 讓您的Web服務引用的實例
- 21. 當您有CI服務器時,您是否必須在本地運行測試?
- 22. 如何使您的WCF服務專屬於您自己的客戶端?
- 23. 可以/您是否應該使用RIA的核心域服務來執行與實體無關的服務?
- 24. Symfony2/Doctrine:如何從實體類中堅持一個實體?
- 25. 哪種類型的網絡服務是您的主要選擇?
- 26. Doctrine2:堅持父實體給出子類
- 27. 流利NHibernate沒有堅持實體類
- 28. EntityManager不會堅持實體類?
- 29. 如果您無法使用交易,您如何有效地在企業環境中使用Web服務?
- 30. 如何填充您在實體框架中擴展的實體?