EntityFramework抛出AmbiguousMatchException

时间:2010-08-16 08:45:49

标签: entity-framework

设置: 带代理的EntityFramework POCO(+ LazyLoading)

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; }

然而这个问题刚刚出现,我现在无法理解为什么没有真正的变化。

1 个答案:

答案 0 :(得分:0)

我已经调查了这个问题,结果发现.NET将索引器(例如来自IDataErrorInfo)编译成Item,因此在名为Item的类和具有这种属性的任何类中引入了某种模糊性。这会导致EF出现问题。这个问题隐藏在我的代码中比我想象的更深,并且并非所有信息都存在于初始帖子中(主要是Component类具有Item属性的事实)。