我开始了一个新项目,对于这个项目我想使用 BasicSample(NHibernate 最佳实践,http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-1-2nd-Ed)我以前没有用过这个,现在我遇到了问题。在这个项目中,我使用 NHibernate 3.3.1 并修改了 BasicSample 的源代码以使用我的实体。对于每个班级模型,我都会收到此错误(仅显示班级“月”):
System.TypeInitializationException was unhandled by user code
Message=“嵌套”的类型初始化程序引发了异常。Source=Project.Data TypeName=Nested StackTrace:在 Project.Data\NHibernateSessionManager.cs 中的 Project.Data.NHibernateSessionManager.get_Instance():在 App_Code\NHibernateSessionModule 中的 Project.Web.NHibernateSessionModule.BeginTransaction(Object sender, EventArgs e) 的第 28 行.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=以下类型不得用作代理:Project.Core.Domain.Calendar.Month:方法 Equals 应为“公共/受保护的虚拟”或“
类看起来像:
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();
}
有没有人知道问题可能是什么?我一直在交叉检查我的项目和 BasicSample 项目,但我找不到任何不匹配的东西。
2.有人可以为我解释如何使用 DaomainObject 中的 GetHashCode,因为我不知道如何在每个类中使用这个= 是否应该在此处添加类中的每个属性?
我希望有一个人可以帮助我。