我在教程中看到了很多,导航属性为ICollection<T>。这是对实体框架的强制性要求吗?我可以使用IEnumerable吗?使用ICollection代替IEnumerable或什至的主要目的是List<T>什么?
3 回答
智慧大石
TA贡献1946条经验 获得超3个赞
通常,您选择的内容取决于您需要使用的方法。通常,- IEnumerable<>(MSDN:http : //msdn.microsoft.com/zh-cn/library/system.collections.ienumerable.aspx)用于仅需要遍历的对象列表ICollection<>(MSDN:http:// msdn.microsoft.com/zh-cn/library/92t2ye13.aspx),以获取需要迭代和修改List<>的对象列表,以及需要迭代,修改,排序等的对象列表(请参见此处)有关完整列表,请访问:http : //msdn.microsoft.com/en-us/library/6sh2ey19.aspx)。
从更具体的角度来看,延迟加载可以选择类型。默认情况下,实体框架中的导航属性带有更改跟踪,它们是代理。为了将动态代理创建为导航属性,虚拟类型必须实现ICollection。
千巷猫影
TA贡献1829条经验 获得超7个赞
回答关于List<T>以下问题:
List<T>是一堂课 指定接口可以实现更高的灵活性。一个更好的问题是“为什么不IList<T>呢?”
要回答这个问题,请考虑IList<T>增加了什么ICollection<T>:整数索引,这意味着项目具有某些任意顺序,可以通过引用该顺序来进行检索。在大多数情况下,这可能没有意义,因为在不同情况下可能需要对项目进行不同的排序。
- 3 回答
- 0 关注
- 592 浏览
添加回答
举报
0/150
提交
取消