将实体映射到unonymous类型或使用无参数构造函数的类型很容易:
context.EntitiesSet.Select( entity => new MyClass { Prop = entity.Id } );
但如果MyClass
实施IEnumerable
界面,则EF会抛出NotSupportedException
。
我想知道这种奇怪的意思。
答案 0 :(得分:1)
我认为它与此问题有关:How do I load related entities of type IEnumerable<T>,其中会询问为何导航属性无法实现IEnumerable
。
在当前的EF 6源中,检查是否支持实现类型。它只在评论中说明
//不支持实现IEnumerable的类型
那里没有太多解释。
但是,对于集合属性,我可以看到为什么至少需要ICollection
才有意义,因为必须在集合中添加和删除对象(IEnumerable
没有{{1} }和Add
方法)。
我认为实施Delete
的预测类型的情况要么被认为太难以支持,要么被忽视。