У меня есть две таблицы, как показано в следующем примере, в MSSQL db.Фильтрация результатов LINQ на основе «удаленных» флагов
PROJECT
id
startDate
endDate
STORY
id
project_id
description
deleted_flag
В логике моего приложения, я не хочу, чтобы пользователи могли по-настоящему «удалить» объект, но я хочу, чтобы дать им эту иллюзию. В результате «deleted_flag» устанавливается в true, как только история удаляется.
Все это хорошо, но при использовании LINQ to SQL у меня проблема с шаблоном проектирования.
Я использую шаблон репозитория, а в моем хранилище объектов Story мой метод «FindAll()» содержит фильтр Where (s =>! S.deleted_flag), так что, когда список Истории извлекается пользователем, он показывает только неиспользуемые.
У меня есть проблема, является обеспечение соблюдение этого во всей системе = Проблема заключается в том, что из-за достижимости от родительского объекта в LINQ можно получить нефильтрованные коллекции, просто используя
Event e = EventsRepository.FindWithID(1);
var stories = e.Storys;
Это было разрешить вызывающему абоненту просматривать даже удаленные объекты.
Что было бы рекомендуемым способом борьбы с этим?
аК
Имеет смысл, время, необходимое для реорганизации! – KingCronus