I started a new project and for this project i wanted to use BasicSample (NHibernate best practise, http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-1-2nd-Ed) i haven´t used this before and now i get problems. In this project i use NHibernate 3.3.1 and modified the source code from BasicSample to use my entieties. I get this error for every class model (just showing for the class "Month"):
System.TypeInitializationException was unhandled by user code
Message=The type initializer for 'Nested' threw an exception. 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.InvalidProxyTypeException Message=The following types may not be used as proxies: Project.Core.Domain.Calendar.Month: method Equals should be 'public/protected virtual' or 'protected internal virtual' Project.Core.Domain.Calendar.Month: method IsTransient should be 'public/protected virtual' or 'protected internal virtual' Project.Core.Domain.Calendar.Month: method get_Year should be 'public/protected virtual' or 'protected internal virtual' Project.Core.Domain.Calendar.Month: method set_Year should be 'public/protected virtual' or 'protected internal virtual' Blockquote
the class looks like:
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();
}
Does anoyone know what the problem could be? I have been crosschecking my project and the BasicSample project but i can´t find anything that missmatch.
2.Can someone explain for me how to use the GetHashCode from DaomainObject because i don´t know how to use this one in every class= Should every property in the class be added here?
I hope someone can help me.