2010-08-16 25 views
0

的設置: 的EntityFramework POCO與代理(+惰性加載)的EntityFramework拋出AmbiguousMatchException

ComponentPart類都實現IDataErrorInfo(如果這是需要的話)。下面的代碼拋出異常:

// Context is a singleton here 
Context.LoadProperty<Part>(
    partEntity, 
    (e) => e.ChildComponents, 
    MergeOption.OverwriteChanges); 

模棱兩可的屬性ChildComponents我可以告訴尚沒有其他財產具有相同的名稱,它唯一的定義是:

public virtual ICollection<Component> ChildComponents { get; set; } 

這在EF覆蓋代理和變成類似的東西

public virtual EntityCollection<Component> ChildComponents { get; set; } 

然而,這個問題剛剛出現,我不明白爲什麼現在,因爲沒有真正的變化。

+0

就我而言,我的一個實體具有與關聯屬性名稱相同的標量屬性,只有一個不同的外殼。這導致了'AmbiguousMatchException'。 – Steven 2014-03-18 09:58:16

回答

0

我已經調查過這個問題,事實證明.NET將索引器(例如IDataErrorInfo)編譯爲Item,因此在名爲Item的類中引入了某種模糊性,並且具有這種屬性的任何類都會引入某種模糊性。這在EF中導致問題。這個問題被埋在我的代碼中,比我想象的更深,並且並不是所有的信息都出現在最初的帖子中(主要是Component類擁有Item屬性)。

相關問題