Nhibernate在缺少数据库列时抛出异常

时间:2016-06-09 08:54:40

标签: c# nhibernate fluent-nhibernate nhibernate-mapping

描述: 我们添加了专栏

 alter table t_mailbox add nosticker_timespan datetime null

和相应的映射

    <hibernate-mapping assembly="GeoMail.Core" namespace="GeoMail.Core.Domain.Model" xmlns="urn:nhibernate-mapping-2.2">
    <class name="Mailbox" table="t_mailbox" lazy="false" >
      <id name="Id">
       <generator class="identity" />
      </id>
      ...
      <property name="NostickerPlacingDate" type="UtcDateTime">
        <column name="nosticker_timespan" sql-type="date" not-null="false" />
      </property> 
      ...

一切都很完美。稍后我们决定在新概念的情况下删除此列,因此我们删除了映射并删除了数据库中的列。列&#34; nosticker_timespan&#34;没有任何额外的关系。但是nhibernate在任何邮箱实体更新上抛出GenericADOException,原因是

Invalid column name 'nosticker_timespan'.

我已经清理了所有可能的缓存文件,尝试了不同的解决方案,重新启动了所有可能的服务,但没有任何帮助。有人知道原因(这个数据被缓存的地方)为什么会发生?如何强制hnibernate重新检查此列不再存在?

1 个答案:

答案 0 :(得分:0)

找到原因!在数据库数据库中触发此表!避免触发!!!