【问题标题】:How to cancel change in Bound Grid using Fluent Nhibernate如何使用 Fluent Nhibernate 取消绑定网格中的更改
【发布时间】:2011-02-08 19:52:16
【问题描述】:

我想不出一种模式来处理使用 fluent nhibernate 绑定到一组数据的 winform 数据网格。

我有一个名为 User 的“流利”类,并正在使用以下内容填充数据网格:

this.grid.DataSource = session.CreateCriteria().List();

这很好用,我在网格中看到了我的用户记录。我可以使用事务,或者在网格中进行编辑后简单地刷新我的会话,一切都会正确地持续存在。但是,我不知道如何取消对网格中用户对象所做的更改。即使我在 session.BeginTransaction 中打开表单,当我调用 session.Transaction.RollBack() 时,更改也不会保留到我的数据库中,但会话对象仍然有更改,并且会在下次刷新会话时保留.

我已经到处寻找 Win Forms 的最佳实践,但找不到解决此问题的方法。

【问题讨论】:

    标签: winforms nhibernate grid fluent


    【解决方案1】:

    首先,停止手动刷新 Session。如果您需要手动刷新会话,则您的设计可能存在严重问题。其次,使用事务。第三,不要让你的会话长时间保持活动状态。关注Unit of Work pattern

    【讨论】:

      【解决方案2】:

      首先,冲洗仅用于测试目的。其次,我正在使用事务。第三,我一直试图让一个会话只在包含数据网格的表单的持续时间内存在。我已经阅读并完成了 UoW 模式的测试实现,但它仍然不能帮助我解决我最初的问题,即:什么是可用于允许数据网格绑定到的模式/最佳实践NHibernate 实体列表,并且能够取消在网格中所做的更改。

      我读过的关于在 Winforms 环境中使用 fluent nhibernate 的每个示例或博客都有一个用于编辑单个记录的弹出屏幕。我需要允许用户编辑网格中的实体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多