Обновление коллекций, отфильтрованных в отображении - PullRequest
2 голосов
/ 23 ноября 2010

У меня есть коллекция, которая фильтруется на уровне сопоставления для включения мягкого удаления с использованием столбца «isDeleted» в базе данных.

Отображение выглядит следующим образом:

HasMany(x => x.UploadedFiles).Where("IsDeleted = 0")

КогдаЯ установил свойство isDeleted для некоторых элементов, коллекция не обновляется автоматически, чтобы отразить удаление до перезагрузки объекта.

Есть ли способ принудительно выполнить «повторную фильтрацию» без перезагрузки объекта?

1 Ответ

2 голосов
/ 23 ноября 2010

Предложение Where в отображении должно фильтровать во время выборки.Он не используется во время выполнения, поэтому вы не видите, что UploadedFiles выпадает из вашей коллекции, когда вы устанавливаете IsDeleted = true.Я не верю, что можно обновить коллекцию без перезагрузки объекта, которому она принадлежит.

Я бы порекомендовал выразить свое намерение в вашей объектной модели.

private IList<File> uploadedFiles = new List<File();
public virtual IEnumerable<File> UploadedFiles {
    get {
        return uploadedFiles.Where(x => x.IsDeleted == false);
    }
}

И затем изменить вашусопоставление для доступа к полю поддержки ...

HasMany(x => x.UploadedFiles)
    .Access.CamelCaseField()
    .Where("IsDeleted = 0")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...