#c#-4.0 #entity-framework-4
#c #-4.0 #entity-framework-4
Вопрос:
Я получаю нарушение ограничения множественности в моей модели сущности.
В моей модели сущности у меня есть два свойства взаимосвязи:
- SubstanceTypeMixConstituents
- Категория
SubstanceTypeMixConstituents
— Категория множественности * (много)
— Множественность: 1 (один)
— Внешний ключ, а не null
Как мне найти причину проблемы и решить эту проблему?
System.InvalidOperationException: A relationship multiplicity constraint violation occurred: An EntityReference expected at least one related object, but the query returned no related objects from the data store.
at System.Data.Objects.DataClasses.EntityReference`1.Load(MergeOption mergeOption)
at System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad()
at System.Data.Objects.Internal.LazyLoadBehavior.LoadProperty[TItem](TItem propertyValue, String relationshipName, String targetRoleName, Boolean mustBeNull, Object wrapperObject)
at System.Data.Objects.Internal.LazyLoadBehavior.<>c__DisplayClass7`2.<GetInterceptorDelegate>b__2(TProxy proxy, TItem item)
at System.Data.Entity.DynamicProxies.SubstanceType_BEE32ACA75386E981F7CA3F6A3C565BC1D8ADACA228C603A2EACC918DCDCBA30.get_Category()
Комментарии:
1. @Michael — здесь вы меня потеряли:
I have a multiplicity constraint on one releationship of 1 (One) where the database has a foreign key that are not null and a second relationship of * (Many) where the database has a many to many relationship
. У вас есть отношение «один ко многим» или «многие ко многим»?2. Извините. Я отредактировал сообщение, чтобы придать ему больше смысла. Надеюсь, это поможет.
3. @Michael — скриншот вашей модели был бы лучшим, но, насколько я понимаю, у вас есть две сущности —
Category
иSubstanceTypeMixConstituent
, которые имеютOne-to-many
отношения — уCategory
может быть несколькоSubstanceTypeMixConstituents
, но уSubstanceTypeMixConstituent
может быть (и должна быть) только однаCategory
(поправьте меня, если я ошибаюсь). Полученное вами сообщение об ошибке означает именно то, что в нем говорится — вы либо пытаетесь сохранить aCategory
с пустой коллекциейSubstanceTypeMixConstituents
, либо aSubstanceTypeMixConstituent
безCategory
.4. @Yakimych: Укажите часть:
SubstanceTypeMixConstituent
безCategory
в качестве ответа, потому что это будет проблемой.5. @Ladislav — С чего ты взял, что все не наоборот?
Ответ №1:
Насколько я понимаю, у вас есть две сущности — Category
и SubstanceTypeMixConstituent
, которые имеют One-to-many
отношения — a Category
может иметь несколько SubstanceTypeMixConstituents
, но a SubstanceTypeMixConstituent
может иметь (и должно иметь) только одну Category
(поправьте меня, если я ошибаюсь). Полученное вами сообщение об ошибке означает именно то, что в нем говорится — вы либо пытаетесь сохранить a Category
с пустой коллекцией SubstanceTypeMixConstituents
, либо a SubstanceTypeMixConstituent
без Category
.