Как отменить изменение в Bound Grid с помощью Fluent Nhibernate - PullRequest
0 голосов
/ 08 февраля 2011

Я не могу найти шаблон, который можно использовать для работы с сеткой данных winform, которая связана с набором данных с использованием беглого nhibernate.

У меня есть «свободный» класс с именем User, и я заполняю сетку данных, используя следующее:

this.grid.DataSource = session.CreateCriteria () Список ();.

Это прекрасно работает, и я вижу мою запись пользователя в своей сетке. Я могу либо использовать транзакцию, либо просто очистить сеанс после внесения изменений в сетку, и все будет сохраняться правильно. Однако я не могу понять, как отменить изменения, внесенные в объекты User в сетке. Даже если я открываю форму в рамках session.BeginTransaction, когда я вызываю session.Transaction.RollBack (), изменения не сохраняются в моей базе данных, но объекты сеанса по-прежнему имеют изменения и сохраняются в следующий раз, когда сеанс сбрасывается .

Я просмотрел лучшие практики для Win Forms и не могу найти решение этой проблемы.

Ответы [ 2 ]

0 голосов
/ 09 февраля 2011

Прежде всего, промывка была только для целей тестирования. Во-вторых, я использую транзакции. В-третьих, я пытался проводить сеанс только вживую на протяжении формы, содержащей сетку данных. Я прочитал и выполнил тестовую реализацию шаблона UoW, но он по-прежнему не помогает мне с моим первоначальным вопросом, а именно: что такое шаблон / передовой опыт, который можно использовать для привязки сетки данных список сущностей NHibernate и возможность отмены изменений, внесенных в сетку.

В каждом отдельном примере или блоге, которые я читал об использовании беглого nhibernate в среде Winforms, есть всплывающее окно для редактирования отдельных записей. Мне нужно разрешить пользователям редактировать объекты в сетке.

0 голосов
/ 09 февраля 2011

Прежде всего, остановите ручную очистку сессии.Если вам нужно вручную очистить сеанс, вероятно, что-то серьезно не так с вашим дизайном.Во-вторых, используйте транзакции.В-третьих, не поддерживайте свою сессию в течение долгого времени.Следуйте шаблону Единица работы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...