为什么EF 4.1代码首先返回HashSet而不是Collection

时间:2014-02-19 23:17:09

标签: ef-code-first devexpress entity-framework-4.1 hashset

获取此信息:

System.Collections.Generic.HashSet`1[Counter]

期待这个:

ICollection<Counter>

//底层对象:

public virtual ICollection<Counter> Counters { get; private set; }

我正在使用DevExpress PropertyGridControl:

dxprg:CollectionDefinition Path="Counters" Type="{x:Type efo:Counter}"

我认为这是EF的正常行为,因为我没有调用计数器集合上的任何函数,例如,ToList(),但由于CollectionDefenition上的Path属性,它不清楚如何这样做。 我可以创建一个实时对象,用相同的值填充它,初始化Collection然后绑定到它,但这看起来很脏。

欢迎任何有关EF的事情的智慧......

1 个答案:

答案 0 :(得分:2)

实体框架需要某些来实现ICollection它使用HashSet<T>因为这是一个相当高效的ICollection<T>实现。最后,实现接口的每个对象总是一些具体的类。