私たちのアプリケーションは (悲しいことに) MDB バックエンド データベース (つまり、JET エンジン) を使用しています。
データベースに永続化される項目の 1 つは、「イベント」オブジェクトです。オブジェクトは、Autonumber フィールドである ID (EventLogID) を持つテーブルに永続化されます。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 が ID を取得しようとすると、値「0」を受け取る場合があります。その後、Flush が呼び出されると、NHibernate はアサーション エラーに悩まされます。
なぜこれが起こっているのか誰にも示唆できますか?さらに良いことに、誰かがそれを修正する方法を提案できますか?
よろしく、リチャード