Этого можно добиться, передав необязательный параметр в метод CreateFoo, для указания сохранения или не сохранения
Во-вторых, вылезает наружу логика доступа к данным, которую репозиторий по-хорошему должен инкапсулировать.Вот здесь я немного Вас не понял - можете пояснить?
Скажем, появится какой-нибудь флажок типа IsActive или IsDeleted, который тоже нужно учитывать - и придется шерстить весь проект, править вышеозначенные запросы.На такой случай фильтры можно заменять специальными классами, следуя шаблону "Спецификация" (blog.byndyu.ru/2011/01/domain-driven-design-reposi... - этот блог мне очень нравится, потому что очень многие вещи очень доступны для понимания и популярно объяснены, https://habrahabr.ru/post/171559/ ну и просто погуглить). Скажу честно - шаблон "Спецификация" я пока что применять не начал, и спасибо Вам, Maa-Kut, что Вы мне про него напомнили!