Это немного тангенциально, но я думаю, что валидация не является правильным подходом здесь.Почему бы не сделать так, чтобы ваша модель выглядела так:
public class Order
{
public int OrderID{get;set;}
public int CustomerID{get;set;}
public DateTime OrderDate{get;set;}
public string ShippingAddress{get;set;}
public IDictionary<int, int> ProductQuantities{get;set;}
}
Затем, если ваш пользователь добавляет существующий продукт в заказ, просто представьте текущее количество и предложите варианты его увеличения.Таким образом, вы направляете пользователя в правильное использование вашего интерфейса, а не позволяете ему сделать ошибку, а затем наказываете его сообщением проверки.