One of the core tenets of Domain-driven Design (DDD) is separation of concerns. Separation is achieved in the domain layer by defining highly encapsulated entities, value objects, aggregates, and domain services. Another area of concern is separating the domain layer from the data-persistence layer. While modern ORM’s can make our lives easier in persisting data, they can also make separating that persistence from our domain models more difficult. [Continue Reading]