我有基于this post by Ayende的预插入和预更新侦听器,这些侦听器现在已经开始工作了。我刚刚将我的应用程序中的后端从WCF Web API转换为ASP.NET Web API,我开始遇到问题。
(我只是提到转换,因为它是唯一因为一切正常而改变的东西。)
我可以插入没有任何问题的实体,我可以更新现有实体而不会出现任何问题。但是,如果以导致SQL插入后跟SQL更新的方式添加实体,则审计将失败。
检查@event.State
方法中的OnPreUpdate
会将CreatedOn
日期显示为DateTime.MinValue
,即使在OnPreInsert
方法中设置正确之后也是如此。 / p>
我猜测SQL插入和更新语句的@event.State
是在调用侦听器之前构建的,虽然更新的实体状态在OnPreUpdate
方法中可用,{{1两个不同的东西。
我目前的解决方法是使用实体中的创建数据重置@event.State
方法中的CreatedOn
,但这感觉不对。
还有其他人经历过这个吗?它是NHibernate中的错误,还是预期的行为?