NHibernate地图灾难--”;未知实体类:System.Int64“;

NHibernate地图灾难--”;未知实体类:System.Int64“;,nhibernate,Nhibernate,NHibernate快把我逼疯了 我有以下映射。 当我尝试向数据库添加记录时,返回此错误。 “未知实体类:System.Int64” 我可以创建记录,但是当NHibernate生成模式时,外键没有设置 我花了好几个小时才准备好一些简单的积垢。我希望NHibernate能给我一些回报,让我一直保持健康 如果有人能发现问题,请给我一个提示,然后我就可以完成这件事,喝一杯应得的啤酒。 非常感谢*2提供的任何帮助。我不建议您将calendarId作为多对多标记中的名称,name属性必须是保存日历的属性的

NHibernate快把我逼疯了

我有以下映射。 当我尝试向数据库添加记录时,返回此错误。 “未知实体类:System.Int64”

我可以创建记录,但是当NHibernate生成模式时,外键没有设置

我花了好几个小时才准备好一些简单的积垢。我希望NHibernate能给我一些回报,让我一直保持健康

如果有人能发现问题,请给我一个提示,然后我就可以完成这件事,喝一杯应得的啤酒。
非常感谢*2提供的任何帮助。

我不建议您将calendarId作为多对多标记中的名称,name属性必须是保存日历的属性的名称,即name=“calendar”。另一部分似乎还可以,但我认为指定sql类型根本没有帮助,这可以防止数据库不可知论,因为它会覆盖hbm2ddl类型的变化。因此,您可以尝试以下映射:

<class name="CalConnector" table="tb_calConnectors" lazy="false" >
  <id name="id" column="id">
    <generator class="hilo"/>
  </id>
  <many-to-one name="Calendar" class="Calendar" lazy="false" cascade="save-update" column="calendarId" not-null="false" />
</class>

请记住,CalConnector必须具有名为Calendar的虚拟属性(类型为Calendar),才能使用此映射

<property name="calendarID"/>
<class name="CalConnector" table="tb_calConnectors" lazy="false" >
  <id name="id" column="id">
    <generator class="hilo"/>
  </id>
  <many-to-one name="Calendar" class="Calendar" lazy="false" cascade="save-update" column="calendarId" not-null="false" />
</class>