背景NHibernate的緩慢啓動,HBMS有條件的加載和「協會引用未映射類」
我們已經流失了相同型號的幾個項目/應用程序。它們都有自己獨特的實體/表格,但也共享1個特定的通用實體/表格。 也就是說應用程序A所需的實體永遠不會被應用程序B要求,除了公用表以外,反之亦然。現在公用表與應用程序A的表以及應用程序B的表有關係。 加載大量HBM時,事情變得相當緩慢,所以我們實現了一個只加載當前運行的應用程序所需的HBM的系統。
問題
在應用程序A,當我們現在訪問的公共表/實體,像這樣:
session.Linq<CommonEntity>().Where (...);
我們得到下面的異常
NHibernate.MappingException : 協會參考未映射類: (應用B的實體)
我希望如果我們通過公共實體的關係顯式地嘗試訪問應用程序B的表,並且結果它不會因爲我們從應用程序A不這樣做而破壞NHibernate將會中斷。 但唉。
問題
是否存在一種配置,直到它被訪問NHibernate的延遲一個映射關係的驗證的方法嗎?
我們使用延遲加載。
是的我知道配置是一次性操作,但希望可以映射部分模型。但是,您的序列化提示是我們問題的答案。我已經實現了序列化,並且初步測試顯示SessionFactory現在構建在原始時間的10%到20%之間。感謝名單! – 2010-09-15 05:05:56