2013-05-22 51 views
2

我剛將我的.net windows應用程序從nHibernate 1.2升級到3.3,但現在有問題。在運行期間,它引發以下錯誤:nHibernate問題升級到3.3

類型的第一次機會異常「NHibernate.InvalidProxyTypeException」發生在NHibernate.dll NHibernate.InvalidProxyTypeException:以下類型可能不能用作代理: CALLTYPE:方法Equals應將「公共/受保護的虛擬」或「受保護的內部虛擬」 .....

這裏的類:

public class CallType : DomainObject<int> 
{ 
     public virtual String Description 
     { 
      get; 
      protected set; 
     } 
     public virtual String Name 
     { 
      get; 
      protected set; 
     } 

     public CallType() 
     {} 

     public override int GetHashCode() 
     { 
      return string.Format("{0}|{1}", Description, Name).GetHashCode(); 
     } 
} 

我錯過了什麼?所有成員都是公共虛擬的。此應用程序需要延遲加載

+0

應該讓項目保持最新狀態。更新主要版本必然會破壞內容。增量更改比像23243這樣的跳躍更容易修復。 – Phill

回答

4

您正在從DomainObject繼承。我懷疑這個類有一個方法等於它,它可能不會被設置爲虛擬。

構造函數CallType不需要像有些人提到的那樣是虛擬的。

+1

是的,你是正確的DomainObject的方法沒有設置爲虛擬。 – DevUser