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