我们的应用程序(很遗憾)使用了 MDB 后端数据库(即 JET 引擎)。
持久化到数据库的项目之一是“事件”对象。该对象被持久化到一个 ID (EventLogID) 的表中,该 ID 是一个自动编号字段。NHibernate 映射如下:
<class name="EventLogEntry" table="tblEventLog" proxy="IEventLogEntry">
<id name="Id">
<column name="EventLogID" not-null="true" />
<generator class="native" />
</id>
<property name="Source" column="ErrorLogSource" />
<property name="Text" column="EventLogText" />
<property name="Time" column="EventLogTime" />
<property name="User" column="UserID" />
<property name="Device" column="EventDeviceID" />
</class>
根据日志文件,在某些情况下,NHibernate 尝试获取身份时,会收到值“0”。后来,当 Flush 被调用时,NHibernate 遭受断言失败。
谁能建议为什么会发生这种情况?更好的是,任何人都可以建议如何解决它?
问候,理查德