Вопрос по архитектуре приложения (CQRS)?
==========================================

 Во всех своих предыдущих проектах я использовал типичную 3х уровневую архитектуру.  

Сейчас я разрабатываю REST API (ASP.NET Core) и после большого количества обдумываний я решил, что буду использовать CQRS. Но у меня осталось несколько вопросов, связанных с абстракцией от хранилища данных (и вообще ее необходимостью) и моделями.  
  

Проект я планирую разбить на маленькие библиотеки, каждая из которых ответственна за определенную функциональность. Вот, например, есть библиотека для работы с пользователями, в ней набор Command и Query. Могу ли я в этой библиотеке напрямую писать запросы и дергать БД или нужно как-то абстрагироваться от хранилища данных?  
  

Вопрос с моделями: раньше в проектах я делал модели, которые полностью соответствовали структуре в БД. Если я правильно понял, в CQRS так делать не нужно. В моем понимании нужно для каждого Query писать отдельный класс, который Query будет заполнять и возвращать. Верно? Или я что-то путаю? Нужны ли в этом случае View модели? Ведь получается, что Query будет возвращать только нужные нам данные. 

> Вопрос с моделями: раньше в проектах я делал модели, которые полностью соответствовали структуре в БД. Если я правильно понял, в CQRS так делать не нужно.

  
  

А как вы собираетесь востанавливать состояние Query из "долго живущего" хранилища?