Это определенно не правильное использование шаблона хранилища. Я считаю, что самый простой способ думать о репозитории - представить, что каждый Орден в вашей системе доступен в большой коллекции (репозиторий). Тем не менее, вы, вероятно, хотите добавить способ запроса определенных объектов из хранилища (либо с помощью шаблона Query, либо с помощью прямых вызовов методов).
В нашей системе у нас был бы метод уровня обслуживания, называемый Checkout, который бы выглядел следующим образом ...
public void Checkout(int customerId)
{
if(CustomerHasOpenOrder(customerId) == false)
{
// do something depending on your standards. For us we'd
// throw an exception
}
Order orderToCheckout = m_OrderRepository.FindOpenOrderForCustomer(customerId);
orderToCheckout.Checkout();
m_OrderRepository.Save(orderToCheckout);
}
В нашей системе мы на самом деле не используем целые числа для идентификации заказов, но вы поняли ...