Отладка с нарушением ограничения множественности

#c#-4.0 #entity-framework-4

#c #-4.0 #entity-framework-4

Вопрос:

Я получаю нарушение ограничения множественности в моей модели сущности.

В моей модели сущности у меня есть два свойства взаимосвязи:

  1. SubstanceTypeMixConstituents
  2. Категория

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 (поправьте меня, если я ошибаюсь). Полученное вами сообщение об ошибке означает именно то, что в нем говорится — вы либо пытаетесь сохранить a Category с пустой коллекцией SubstanceTypeMixConstituents , либо a SubstanceTypeMixConstituent без 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 .