В моем текущем проекте у нас появился довольно необычный запрос (для меня). Клиент хочет, чтобы вся процедура удаления маркировала флаг, а не физически удаляла запись из таблицы базы данных. На первый взгляд это выглядит довольно легко. Я просто изменитьМарк «удалил» вместо физического удаления с помощью Castle ActiveRecord
public void DeleteRecord(Record record)
{
record.DeleteAndFlush();
}
public IList GetAllRecords()
{
Record.FindAll().ToList();
}
Для
public void DeleteRecord(Record record)
{
record.Deleted = true;
record.UpdateAndFlush();
}
public IList GetAllRecords()
{
Record.FindAll().Where(x=>x.Deleted==false).ToList();
}
Но после того, как я получаю немного времени и думать, хотя еще раз. Я обнаружил, что это небольшое изменение вызовет огромную проблему в моих настройках каскада. Поскольку я довольно новичок в бизнесе Active Record. Я бы не стал доверять себе, просто изменив все CascaeEnum.Delete на CascadeEnum.SaveUpdate. Итак, я смотрю здесь немного.
1) Является ли знак флагом вместо физического требования общим?
2) Если ответ на вопрос 1 «Да», то я верю, что в NHibernate есть что-то встроенное для обработки этого. Может ли кто-нибудь сказать мне, каков правильный подход к этой проблеме?
Спасибо за ваш вклад.
Спасибо за быстрый ответ. он чувствует себя хорошо, обнаруживает, что даже такие большие имена, как ayende, имеют такую же озабоченность, как и моя :) –