我想升級我的FNH Automapping項目到最新版本的NHibernate和流利NHibernate(NH 3.2和FNH 1.3),但現在我得到一個「不persister「異常(儘管基類似乎仍然保持正確)。升級NHibernate和FNH DLL - 現在變得「沒有persister」異常
這個派生類自動映射罰款與舊的DLL(FNH 1.0,NH 2.1.2) - 我沒有以任何方式改變我的映射邏輯或這些類。
我升級了我的項目,只是將新的dll複製到舊的dll上,並刪除了對新dll不再需要的dll的引用(例如Antlr 3,Castle)。
精確的版本我使用的是:
的NHibernate 3.2.0.4000
FluentNHibernate 1.3.0.0
System.Data.SQLite 1.0.76.0
VS 2008 9.0.30729.1 SP
的Windows XP SP3(32位)
映射代碼與舊的dll工作,但不是用新的:
return AutoMap.Assemblies(_assemblies)
// Don't map the abstract base class
.IgnoreBase<OfeEntity>()
// Only map subclasses of OfeEntity
.Where(t => t.IsSubclassOf(typeof(OfeEntity)))
.Conventions.Add(
// Do cascading saves on all entities so lists will be
// automatically saved
DefaultCascade.All(),
// Turn on lazy loading, so will only read data that is actually
// displayed
DefaultLazy.Always()
);
編輯:
開啓FNH診斷後,我可以看到,FNH不是爲我的新的DLL派生類中創建一個表。
另外,我注意到的一件事 - 沒有被持續的類被分爲2級。也就是說,我有以下類:
public abstract class OfeEntity
public class OfeMeasurementBase : OfeEntity
public class OfeDlsMeasurement : OfeMeasurementBase
OfeDlsMeasurement是不被持久化類。 OfeMeasurementBase以及其他幾個繼承自OfeEntity的類正在被正確保存。
舊版本沒有這個問題 - 也許新版本有一個錯誤,當有多個級別的繼承?
何時遇到此異常?在建立會話工廠時? –
嘗試執行SaveOrUpdate時出現異常。 –