【发布时间】:2013-10-29 14:06:12
【问题描述】:
我在将 EF4 解决方案迁移到 EF6 时遇到问题。
我们使用 T4 模板生成具有基于 ObservableCollection
因为我们的 ObjectContext 实现将实体集公开为 IObjectSet
public static IQueryable<TSource> Include<TSource>(this IQueryable<TSource> source, string path)
{
IQueryable<TSource> returnValue = source;
var objectQuery = source as ObjectQuery<TSource>;
if (objectQuery != null)
{
returnValue = objectQuery.Include(path);
}
return returnValue;
}
更新了使用 EF6 的解决方案后,我们现在在使用 .Include() 执行查询时看到以下 System.Data.Entity.Core.EntityException:-
“'DataEntities.Parent' 类型实体上的导航属性 'Details' 必须实现 ICollection
我没有得到的是“详细信息”属性是一个自定义类型,它继承了作为 ICollection
如果有人对此有任何启示,我将不胜感激,谢谢。
【问题讨论】:
-
令人惊讶的是,当您提出问题时,答案通常会呈现出来!基本上,我们的导航属性被定义为 ObservableCollection
。似乎不再支持将集合类型定义为接口。只需将它们更改为 ObservableCollection 。 -
一个不同的问题,但这个链接 - link - 提供了缺失的部分。
标签: c# entity-framework entity-framework-6