DDD организация структуры проекта. Domain и DAL

Вопрос по архитектуре. Проект делится на слои, каждый слой в отдельном проекте: App.Domain, App.DAL, App.Infrastructure, ... App.Domain определяет сущности, App.DAL определяет интерфейсы доступа к данным, и dto-объекты сущностей.

Domain:

class User
{
    public string Login { get; private set;}
}

DAL:

interface IUserRepository
{
    List<User> GetAll();
    User FindById(int id);
    ...
}

class UserDto
{
    public int Id { get; set; }
    public string Login { get; private set;}
    public byte[] PasswordHash {get; private set;}
}

Вопрос - как инстанцировать объекты доменной области в DAL? В классе User можно было бы определить конструтор User(UserDto dto), но тогда в доменном слое появляется зависимость от DAL.

Кроме передачи всех зависимостей в конструктор сущности есть другие решения?


Ответы (0 шт):