Solo vi algunos webcasts antes de entrar de cabeza en el diseño de algunas aplicaciones de Entity Framework. Realmente no leí tanta documentación y siento que estoy sufriendo por eso ahora.ICollection <T> Vs List <T> en Entity Framework
He estado usando List<T>
en mis clases, y funcionó muy bien.
Ahora he leído algunos documentos y dice que debería haber estado usando ICollection<T>
. Cambié a esto, y ni siquiera causó un cambio de contexto modelo. ¿Esto se debe a que List<T>
y ICollection<T>
heredan IEnumerable<T>
, y eso es lo que realmente se requiere para EF?
Sin embargo, si este es el caso, ¿por qué la documentación de EF no indica que se requiere IEnumerable<T>
en lugar de ICollection<T>
?
En cualquier caso, ¿hay algún inconveniente en lo que he hecho, o debería cambiarlo?
Así .... sólo para mí entender un poco más lejos - Lista hereda IList, que hereda ICollection, que hereda de IEnumerable ? – wil
Sí, esa es la cadena. 'List' tiene que implementar cada una de esas interfaces ('IList ', 'ICollection ', 'IEnumerable ') debido a la jerarquía de herencia. Para completar, 'IList ' también recoge las interfaces no genéricas 'IList',' ICollection' e 'IEnumerable'. –
Gracias ... ¡Algunas de las características de Ixxx aún escapan a mi comprensión! Sin embargo, tiene sentido una última cosa que me molesta, si las otras Ixx heredan IEnumerable, ¿cómo se agrega a IEnumerable si un Ienumerable es de solo lectura? ... Si es demasiado complejo, no te preocupes, cuando tenga un poco de tiempo, intentaré encender el reflector. – wil