Ссылочные ограничения (платформа Entity Framework)
В модели EDM ссылочные ограничения могут существовать между связанными объектами, например между объектами SalesOrderHeader и SalesOrderDetail. Эти ограничения указаны в файле на языке CSDL. Дополнительные сведения см. в разделе Элемент ReferentialConstraint (EntityContainer, язык CSDL).
Примечание. |
---|
Службы объектов не предписывают все ограничения, которые можно выразить в модели EDM. Например, в службах объектов принудительно не применяются ограничения на количество элементов по отношению к связям, что может привести к получению несогласованных результатов при сохранении изменений связанных объектов в источнике данных. Необходимо убедиться, что в источнике данных соблюдены все критические ограничения модели. |
При работе с объектами, имеющими ограничения на связи, помните о следующих особенностях:
Зависимые (дочерние) объекты не могут существовать без связи с родительским объектом.
При создании нового дочернего объекта родительский объект должен существовать в контексте объекта или источнике данных перед вызовом метода SaveChanges. В противном случае возникнет исключение InvalidOperationException.
Используйте метод Add, чтобы добавить дочерние объекты к родительскому объекту EntityCollection. Коллекция дочерних объектов доступна из свойства навигации, определенного для связи, или из методов GetRelatedEnd и GetRelatedCollection свойства RelationshipManager родительского объекта.
Удаление родительского объекта приводит к удалению всех дочерних объектов в связи, к которой применяется ограничение. Результат этого действия такой же, как включение свойства CascadeDelete ассоциации для связи.
При удалении связи удаляется и дочерний объект. Это значит, что при вызове метода Remove для коллекции EntityCollection связь и дочерний объект помечаются для удаления.
После создания связи изменить ее можно только с помощью следующих действий.
Удалите существующую связь.
Вызовите метод SaveChanges.
Добавьте сохраненный дочерний объект к коллекции EntityCollection нового родительского объекта.