Отметить бизнес-объект как грязный? - PullRequest
4 голосов
/ 27 августа 2010

У меня есть флажок привязки списка к коллекции бизнес-объектов списка <>. Когда элемент отмечен в моем списке флажков, я хочу пометить выбранный бизнес-объект как грязный.

  1. Как получить текущий бизнес-объект при щелчке строки и изменить его свойство?
  2. Кроме того, как бы эта форма в многопользовательской среде?

Ответы [ 2 ]

5 голосов
/ 02 сентября 2010

Это действительно вопрос о параллелизме: как у вас есть несколько пользователей, изменяющих одни и те же бизнес-объекты, и уверены, что каждое из их правок будет успешно сохранено.

Если вы храните свои объекты в кэше,вы можете создать частичный объект для включения логического свойства IsDirty.При проверке элемента вы устанавливаете для свойства IsDirty соответствующего объекта значение true.

Существует множество способов обработки параллелизма, и один из способов, которым вы можете воспользоваться, - это проверить свойство IsDirty при проверке элемента.Если свойство имеет значение false, для свойства устанавливается значение true.Если свойство уже имеет значение true, вы отправляете обратно ошибку пользователю.После сохранения объекта вы возвращаете свойству IsDirty значение false.

Ситуация может становиться все сложнее и сложнее, если вы попытаетесь усложнить правила, созданные для сохранения ваших объектов.

0 голосов
/ 27 августа 2010

Вы можете сохранить список в view-state / session-state / cache или повторно извлечь из базы данных на post-back, затем вы можете пометить бизнес-объект на основе индекса. Лично я выберу список бизнес-объектов с помощью метода-обертки, который будет просматривать его в кеше, а если его нет, тогда извлекать его из базы данных - это позволит иметь небольшое время истечения срока действия кеша.

В многопользовательском сценарии это будет зависеть от того, как вы управляете параллелизмом. Смотрите эту статью для быстрого запуска параллелизма в ASP.NET.

...