我遇到了问题,只是在某些课程中,大部分课程都在工作,而我却找不到其他课程的原因。 A可以创建新对象并保存没有任何问题,但在这种特殊情况下我无法保存更改
我有一个父抽象类:
[DataContract]
public abstract class BaseClass<T> where T : Object
{
public BaseClass(){}
[DataMember]
public virtual int Id{ get; set; }
[DataMember]
public virtual string Code { get; set; }
}
我的班级,有问题:
public class NewClass: BaseClass<OtherClass>
{
public NewClass(){}
}
如果我创建一个NewClass对象并保存它可以正常工作:
var newClass = new NewClass{Code="1"};
Session.SaveOrUpdate(newClass);
现在,如果我更改了Code属性值并保存,则不会在数据库中执行更新。
var newClass = Session.Load<NewClass>(id);
newClass.Code = '01';
Session.SaveOrUpdate(newClass);
编辑:如果我提交了一个事务并提交了更改,它仍然无效。
答案 0 :(得分:1)
这是正常行为。必要时,NH会刷新更新。最后一个片段中完全没有SaveOrUpdate
。只需要将新的或分离的对象放入会话中。在对象进入会话后,NH决定何时将其存储到数据库中。这应该对您的代码都是透明的。
NH Flushes:
session.Flush()