Паскаль спрашивает важный вопрос: являются Предприятию A и B Entity, связанный один-к-одному? Более того, они связаны друг с другом , так что A зависит от B (то есть A является дочерним элементом B)?
Типичные отношения такого рода - это «расширение». Рассмотрим «Заказ» и «OrderExtension». «OrderExtension» - это тип болтовки с дополнительными полями, которые «расширяют» данные заказа ядра. В заказе может быть ноль или одна запись «OrderExtension».
Order
является родителем в этом примере; он НЕ ДОЛЖЕН иметь ссылку FK на OrderExtension
. OrderExtension
является дочерним, и у него ДОЛЖНО иметь требуемое поле FK OrderID
. Родитель Order
может существовать без дочернего элемента, но дочерний OrderExtension
не может существовать без родителя.
По крайней мере, так я и думаю. Я часто видел, как люди поворачивают это вокруг. Они дают Order
поле OrderExtensionID
FK, которое не является обязательным. OrderExtension
не имеет обратного указателя на Order
.
Недостаток этого дизайна заключается в том, что он позволяет создавать несколько потерянных объектов OrderExtension
, которые не принадлежат ни к чему ... и вы редко знаете, что они есть.
Я держу пари, что это ваша ситуация. Я уверен, что Entity B похож на OrderExtension
, а Entity A похож на Order
. Когда вы создали OrderExtension
(B) и связали его с Order
(A), Breeze попытался поддерживать эти отношения для вас, обновив свойство Order.OrderExtensionID
. Это помещает Order
(A) в измененное состояние.
Не продолжайте, пока не выясните это. В то время как Джереми прав, что вы можете сохранить одну сущность путем выбора вишни в ожидании изменений - вы можете сохранить B без сохранения A -, вы рискуете нарушить целостность ваших данных!
С точки зрения моделирования Вы создали объект A, зависящий от объекта B. Если вы не сохраните A в то же время, что вы сохраните B, то кто-то, использующий базу данных, не сможет узнать, что эти два связаны друг с другом.
В следующий раз, когда вы запросите любой из них, ни вы, ни Бриз не узнаете, что они связаны. Вы не сможете перемещаться между A и B. Я почти уверен, что это не то, что вы имели в виду.
Разве это отношения к одному? –
Да, EntitiyB имеет один или нулевой EntityA, EntityA всегда имеет EntityB. –