2011-05-03 271 views
3

我在實體模型中出現了多重性約束違規。多重性約束違規調試

在我的實體模型,我有兩個關係屬性:

  1. SubstanceTypeMixConstituents
  2. 類別

SubstanceTypeMixConstituents
- 多重*(很多)
類別
- 多重:1(一)
- 外國k EY,不爲空

enter image description here

如何找到什麼導致了問題並解決這個問題?

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() 
+0

@Michael - 你在這裏失去了我:'我有一個關於1(一)的重要性約束,其中數據庫有一個非空的外鍵和*(許多)數據庫有一個多對多的關係。你有一對多或多對多的關係嗎? – Yakimych 2011-05-03 11:54:56

+0

對不起。爲了更有意義,我編輯了這篇文章。希望能幫助到你。 – Michael 2011-05-03 13:42:47

+0

@Michael - 你的模型的屏幕截圖是最好的,但據我所知,你有兩個實體 - 「Category」和「SubstanceTypeMixConstituent」,它們具有「一對多」關係 - 「Category」可以有多個「SubstanceTypeMixConstituents」,但是「SubstanceTypeMixConstituent」可以有(只有**必須**)只有一個「Category」(如果我錯了,請糾正我)。您收到的錯誤消息意味着它的含義 - 您要麼嘗試保存帶有「SubstanceTypeMixConstituents」的空集合的「Category」,或者沒有「Category」的「SubstanceTypeMixConstituent」。 – Yakimych 2011-05-03 14:03:50

回答

2

據我瞭解,你有兩個實體 - CategorySubstanceTypeMixConstituent其中有一個One-to-many關係 - 一個Category可以有多個SubstanceTypeMixConstituents,但SubstanceTypeMixConstituent可以(而且必須)只有一個Category(指正如果我錯了)。您收到的錯誤消息的含義與您的說法完全相同 - 您要麼嘗試使用SubstanceTypeMixConstituents的空集合保存Category,要麼保存CategorySubstanceTypeMixConstituent