1

あるベンダーが NHibernate を使用してコードを提供しました...そして私は NHibernate にまったく詳しくありません。コードのある時点で Flush() を呼び出すと、エンティティの 1 つに日付値として 1/1/0001 があるため、エラーがスローされます。それを値として持つエンティティを削除することで回避しようとしました。ただし、EntityKeys が読み取り専用に設定されているため、エビクトは機能しません。

コード:

if (((Event)e.Identifier).EnrollmentDate == DateTime.MinValue)
{
    Db.CurrentSession.Evict(e.Identifier);
}

私も試みました:

 Db.CurrentSession.Evict(typeof(Event));

コードが実行されるたびに、エラーはスローされませんでしたが、削除もされませんでした。RemoveAt を試したところ、「コレクションは読み取り専用です」というメッセージがスローされました。エラー

それを回避する方法はありますか?

4

1 に答える 1