title: If repositories are for aggregate roots, where should data access logic for other entities go?
body: <p>I have a few objects that represent a web application.  Currently I have a cluster object to represent a specific deployment of the app.  Within a cluster object I have the following objects:  Server, Customer, User.  None of these objects can exist without being part of a cluster, so I created a ClusterRepository to retrieve the clusters from the database.  Now, from the cluster I need to get a list of Customers, presumably by using a method in the Cluster object like GetCustomers().  Now, my initial thought was to then offload the work of this operation to a CustomerRepository, but since repositories are only for aggregate roots, where should the data access logic go?  Does this belong in a service class?</p>