什么会导致更改不生成更新语句的现有实体?我有一个更新实体状态枚举的命令。它将其从“活动”更改为“已删除”。我使用相同的命令(通常)来更新其他实体上的状态位,没有问题。我可以更新有关实体的单个字符串而不更改其他任何内容,并且更新过程正常。我可以看到这一切会倒在NHProf ...NHibernate实体未更新
我想我的问题,然后是:
- 什么会导致NHibernate的不更新实体时枚举值(和其它...或其他的东西?)被改变了?
- 追踪这些问题的最佳方式是什么?
感谢您的帮助!
一条线索。基类型的属性是:
public virtual EntityStatus Status { get; protected set; }
如果我做的setter公开和直接分配给它,NHibernate的捡起来就好了。当它受到保护时,我会在实体上调用一个方法并更新其中的状态。这是否提供了任何线索?
有趣的是,在这种情况下,我不确定它会更容易。我已经完成了上百次,而且这些懒散的映射与其他使用完全相同的泛型命令来更新存在于它们都继承的抽象类上的属性的实体几乎完全相同。代码全部通过完全相同的命令处理程序,使用完全相同的会话/事务管理以及除一个实体类型外的所有工作。这是奇怪的! – Jereme
另一个线索:基本类型的属性是公共虚拟EntityStatus Status {get;保护组; }如果我将setter公开并直接分配给它,NHibernate就可以很好地完成它。当它受到保护时,我会在实体上调用一个方法并更新其中的状态。这是否提供了任何线索? – Jereme