En casi todos los ejemplos de clases POCO creados para Entity Framework 4.1 colecciones se definen mediante la interfaz ICollection:EF4.1 POCO: Por qué debería usar ICollection
public class TravelTicket
{
public virtual int Id { get; set; }
public string Destination { get; set; }
public virtual ICollection<Person> Members { get; set; }
}
Sin embargo, esto causa un problema en mi código donde Necesito acceder a un miembro de la colección por índice, por ejemplo:
Persona Paul = MiembrosTicketTicket [3];
no se puede aplicar la indexación con [] a una expresión de tipo 'System.Collections.Generic.ICollection
Entonces, ¿cómo puedo obtener alrededor de este problema y debería utilizar siempre ICollection para mis colecciones POCO?
1; este es el punto más importante de su respuesta: "recuperar la entidad de la base de datos no garantiza que las entidades relacionadas siempre tengan el mismo índice en la colección". – Yuck
Sí, entiendo lo que quiere decir con respecto a la posición de las entidades dentro de la colección. Así que, básicamente, no debería usar un índice y en su lugar usar algo como la sugerencia de Evil Greebo de Person Paul = TravelTicket.Members.Where (m => m.Id == 3) – FloatLeft