1

供应商使用 NHibernate 提供了代码......我对 NHibernate 一点也不熟悉。在代码中的某一时刻,它正在调用 Flush() 并引发错误,因为其中一个实体的日期值是 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

0

您需要解决将日期设置为无效值的问题。试图解决这个问题是一个失败的提议。

于 2014-02-20T13:51:17.063 回答