新しいプロジェクトを開始し、このプロジェクトではBasicSample(NHibernateのベストプラクティス、http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-1-2nd-Ed )を使用したいと思いました。 )これまで使用したことがないので、問題が発生します。このプロジェクトでは、NHibernate 3.3.1を使用し、BasicSampleのソースコードを変更してエンティティを使用します。すべてのクラスモデルでこのエラーが発生します(クラス「Month」のみが表示されます)。
System.TypeInitializationException was unhandled by user code
メッセージ=「ネストされた」のタイプ初期化子が例外をスローしました。Source = Project.Data TypeName = Nested StackTrace:at Project.Data.NHibernateSessionManager.get_Instance()in Project.Data \ NHibernateSessionManager.cs:line 28 at Project.Web.NHibernateSessionModule.BeginTransaction(Object sender、EventArgs e)in App_Code \ NHibernateSessionModule .cs:line 27 at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()at System.Web.HttpApplication.ExecuteStep(IExecutionStep step、Boolean&completedSynchronously)InnerException:NHibernate.InvalidProxyTypeExceptionMessage=次のタイププロキシとして使用することはできません:Project.Core.Domain.Calendar.Month:メソッドEqualsは「public /protectedvirtual」または「」である必要があります
クラスは次のようになります。
public class Month : DomainObject<int>
{
private Year _year;
public Year Year
{
get { return _year; }
set { _year = value; }
}
private string _monthName;
public string MonthName
{
get { return _monthName; }
set { _monthName = value; }
}
private IList<Consumption> consumptions = new List<Consumption>();
public IList<Consumption> Consumptions
{
get { return new List<Consumption>(consumptions).AsReadOnly(); }
protected set { consumptions = value; }
}
public Month()
{ }
public override int GetHashCode()
{
return (GetType().FullName + "|" +
MonthName.GetHashCode()).GetHashCode();
}
anoyoneは問題が何であるかを知っていますか?プロジェクトとBasicSampleプロジェクトをクロスチェックしていますが、一致しないものは見つかりません。
2.DaomainObjectのGetHashCodeの使用方法を誰かに説明してもらえますか?これはすべてのクラスで使用する方法がわからないためです=クラスのすべてのプロパティをここに追加する必要がありますか?
誰かが私を助けてくれることを願っています。