2011-10-02 69 views
0

所以我有下面的代碼:如何避免NHibernate中的持久性和映射異常?

try 
{ 
    var config = new Configuration(); 
    config.Configure(); 
    config.AddAssembly(typeof(Address).Assembly); 
    var factory = config.BuildSessionFactory(); 

    using (var session = factory.OpenSession()) 
    using (var xaction = session.BeginTransaction()) 
    { 
     var address = createNewAddress(); 
     session.Save(address); 
     xaction.Commit(); 
     var lastAddressID = address.AddressID; 
    } 
} 

的問題是,我使用NHibernate的做一些映射,當它擊中config.Configure()線,如果我有EmbeddeAsResource選項設置它會拋出一個「Can not compile mapper」異常。奇怪,對吧?

所以我切換到「內容」,並工作。

但它然後到session.Save(地址),並拋出了一個「無可用的持久性」異常。

我一直在這個工作了幾個小時,我的腦袋正在旋轉。我將不勝感激您的任何幫助!

謝謝!

+0

你能告訴我們拋出的全部例外嗎?這聽起來像映射中的錯誤 – Firo

回答

0

當你將它設置爲'Content'時,它被NHibernate忽略,所以它不會被加載 - 這不會給配置sessionfactory帶來​​麻煩 - 並且當你開始使用時會給你'persister missing'異常(未)映射實體。

因此,我們需要查看您的映射 - 以及映射的類以進一步幫助您。