我在教程中看到了很多,导航属性为ICollection<T>。
ICollection<T>
这是对实体框架的强制性要求吗?我可以使用IEnumerable吗?
IEnumerable
使用ICollection代替IEnumerable或什至的主要目的是List<T>什么?
ICollection
List<T>
通常,您选择的内容取决于您需要使用的方法。通常,- 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)。
IEnumerable<>
ICollection<>
List<>
从更具体的角度来看,延迟加载可以选择类型。默认情况下,实体框架中的导航属性带有更改跟踪,它们是代理。为了将动态代理创建为导航属性,虚拟类型 必须 实现ICollection。
表示关系的“许多”端的导航属性必须返回实现ICollection的类型,其中T是关系的另一端的对象的类型。- 创建POCO代理MSDN的要求
有关定义和管理关系的更多信息,MSDN