Я спрашиваю, чтобы узнать, что является наилучшей практикой для таких случаев. Я использую EF4.
У меня есть две сущности, которые называются «Примечание» и «Продукт». У меня есть еще один объект под названием "Фондовый".
Примечание имеет много продуктов, и каждый продукт может быть только в одной заметке (продукт должен иметь примечание).
Всякий раз, когда я вставляю, удаляю или обновляю продукт, я должен обновлять соответствующий объект акции в соответствии с примечанием, прилагаемым к продукту.
В методе InsertProduct () я вставляю Product, а затем обновляю соответствующий Stock. В случае, если Продукт нарушает правила складирования - я получаю исключение, и операция будет прервана, как и должно быть.
В методе InsertNote () я не могу вставить примечание, потому что оно автоматически вставит прикрепленные продукты, и для каждого продукта мне нужно обновить запас и проверить правила запаса (как описано выше). Поэтому перед вставкой Заметки я перебираю все Продукты и вызываю InsertProduct (). После этого я вставляю записку.
Пока здесь два вопроса:
Должны ли вещи быть такими? Нужно ли вручную вставлять
каждый продукт, прежде чем вставить примечание? Как это решается с
Факт Продукт должен быть прикреплен к существующему примечанию (во время
вставка продуктов, примечание не было вставлено)?
Куда следует поместить методы InsertNote () и InsertProduct ()?
каждый из них имеет дело с нотами, продуктами и акциями. Должен ли я создать что-то вроде классов NoteService и ProductService или поместить их в один большой класс обслуживания?
В вопросе, который я задал здесь , я получил ответ, в котором описано, как создавать события, такие как OnBeforeInsert (). Удовлетворяет ли эта реализация моим потребностям обновить Stock после вставки Product?