В идеале ни один из них не должен зависеть от другого - но практически домен будет зависеть от уровня данных, но, надеюсь, косвенно.
Что это значит?
Уровень данных вызывающе не должен зависеть от уровня домена.
Уровень домена, скорее всего, будет использовать объекты данных, но в идеале вы должны делать это путем внедрения зависимостей. Один из способов сделать это - использовать интерфейсы и ссылаться на интерфейсы только во время компиляции. Во время выполнения предоставьте конкретную реализацию для этих интерфейсов через контейнер IoC, такой как Structure Map или Unity.
Это также поможет вам выполнить модульное тестирование вашего решения, а также обеспечить разделение проблем и создать слабосвязанную систему.