Я использую подобную технику. Например, скажем, я активировал аккаунт:
var account = repository.Get(accountId);
account.Activate();
repository.AccountActivated(); // or repository.SaveActivationDetails()
Поскольку вы не хотите, чтобы ваш репозиторий был связан с поведением домена, вы не будете делать следующее:
repository.ActivateAccount(account);
Но вы могли бы сделать это:
account.Activate(repository); // in the Activate method the relevant repository
// persistence method will be invoked.
Таким образом, вы можете выбрать механизм, который вам удобен.
Но вернемся к вашему хранилищу: я бы не стал делать запросы. Облегченный слой запроса может вернуть что-то простое, например DataTable
, для использования вашим внешним интерфейсом; еще DTOs. Это относится к пейджингу, который вы там посещаете.