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