在表格上我有两个按钮取消并保存。当我在搜索后修改表格中的数据并按保存时,其工作正常并保存数据。但是,当我按下取消并转到搜索控制时,它显示更改的值(我已取消)。我的问题是,如何保护nhibernate只显示DB值而不是显示内容或缓存?
你是对的。但问题是除了将面板分配给null之外,我对cancal按钮没有任何作用 gpanel.Datacontext = NULL; 实际问题是当我从搜索控件搜索记录时(通过双击记录),所有字段都被填充。现在,如果更改任何字段/文本框的内容并再次按下取消并再次打开搜索窗口,则会显示错误的修改。 nhibernate是否执行此类功能?他自己维护更新的数据。当我停止应用程序并再次运行时,它显示实际的DB值而不是列表时间。请帮忙 如果在这个问题上有帮助,你可以指导我克隆功能和实现。答案 0 :(得分:0)
在确保用户想要保存数据之前,您似乎正在将数据存储在对象中。如果是这种情况,我认为不是禁用NHibernate缓存,您应该考虑从用户获取数据的更好方法。 例如,如果用户提供有关产品的一些信息,我将按如下方式进行:
public void SaveButtonClicked(object sender,EventArgs e)
{
this.Product.Name=txtName.Text;
this.Product.Category=(Category)cboCategroy.SelectedItem;
this.Session.SaveOrUpdate(this.Product);
this.Session.Flush();
}
由于直到点击SaveButton,如果用户点击取消,产品中没有保存数据,他将看到产品的原始数据。