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.
Кроме передачи всех зависимостей в конструктор сущности есть другие решения?