簡體   English   中英

兩個應用程序,一個數據庫,NHibernate

[英]Two applications, one database, NHibernate

我目前正在開發兩個獨立的應用程序,一個Microsoft WPF應用程序和一個Windows Service應用程序。

Windows Service應用程序負責按特定的時間間隔打開郵箱,如果有新郵件,請在與這些郵件相對應的SQL Server數據庫中創建一些條目。 該應用程序將NHibernate用作針對數據庫的ORM。

另一方面,我有一個Microsoft WPF應用程序,它的用戶可以與Windows Service應用程序創建的郵件進行交互。 這種交互涉及讀取和寫入與Windows Service應用程序正在使用的相同的數據庫。 Microsoft WPF應用程序還將NHibernate用作針對數據庫(完全相同的項目,存儲庫/工作單元)的ORM。

問題在於,當兩個應用程序同時運行時(意圖和設計都是如此),通過NHibernate提供給各個應用程序的數據將是不同的。 我認為這是由於緩存功能引起的,並且Microsoft WPF應用程序的NHibernate實例不知道Windows Service應用程序的NHibernate實例對數據庫所做的更改(反之亦然)。

關於如何糾正這種行為有什么建議嗎? 我查看了IStatelessSession接口,但我不太喜歡它。 有沒有辦法強制NHibernate僅在以編程方式指定的時間刷新其狀態?

感謝您的任何回復!

NHibernate將在會話的生存期內跟蹤其對象,除非您手動從會話中Evict()實體。 根據您的應用程序的工作方式,您可以創建新的短期會話來查詢數據庫條目列表,並創建另一個會話來處理獲取和更新單個項目。 創建一個會話並不太昂貴(創建會話工廠很昂貴,但是您只需要一個),並且不會被迫處理NHibernate的會話緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM