Chave de Entidade Incrementada Automática de Design Orientado a Domínio

Apenas começando com o Domain Driven Design, aprendi que você deve manter seu modelo em um estado válido e, ao criar uma nova instância de uma classe, é recomendável colocar todos os atributos necessários como parâmetros do construtor.

Mas, ao trabalhar com chaves incrementadas automaticamente, só tenho esse novo ID quando chamo um método Add da minha camada persistente. Se eu instanciar meus objetos sem uma chave, acho que eles estarão em um estado inválido porque precisam de algum tipo de identificador exclusivo.

Como devo implementar minha arquitetura para ter meus IDs antes de criar uma nova instância da minha entidade?