Uso EntityFramework POCO + proxies + carga lenta en mi proyecto. Hoy estuve bastante sorprendido de ver que la clase Transaction
tiene su colección relacionada Rows
materializada en HashSet
(en lugar de EntityCollection
). Necesito EntityCollection
para rastrear cambios en la colección.Entity Framework - ICollection relacionado se materializa en HashSet
public class Transaction
{
public virtual ICollection<TransactionRow> Rows { get; set; }
}
Sin embargo otras clases de entidad tienen su colección relacionada materializó en EntityCollection
.
Estoy cargando el Transaction
a través de ObjectQuery
, por lo que debería estar en el contexto. El proxy para el objeto también se crea.
¿Alguien podría decir - cómo Entity Framework decide qué usar - HashSet o EntityCollection? ¿Por qué algo se convierte en HashSets?
Ouch, acabo de inspeccionar la clase una vez más y me di cuenta de que la colección no estaba marcada como virtual :) ¡Gracias por la pista! – Jefim