您的代码以非常严肃的方式违反了单一责任主体.
http://en.wikipedia.org/wiki/Single_responsibility_principle
您的Customer对象不应从存储库加载自身,存储库应该加载Customer对象并将其交还给调用者.
我希望更像是:
Customer customer = repository.GetCustomer(3);