6

Io uso i proxy POCO + EntityFramework + il caricamento lazy nel mio progetto. Oggi sono rimasto piuttosto sorpreso nel vedere che la classe si è materializzata nella classe (anziché). Ho bisogno di EntityCollection per tenere traccia delle modifiche nella raccolta.Entity Framework - related ICollection che si è materializzato in HashSet

public class Transaction 
{ 
    public virtual ICollection<TransactionRow> Rows { get; set; } 
} 

Tuttavia altre classi di entità hanno la loro collezione relativa materializzato in EntityCollection.

Sto caricando il Transaction tramite ObjectQuery, quindi dovrebbe essere nel contesto. Viene creato anche il proxy per l'oggetto.

Qualcuno potrebbe dire: in che modo Entity Framework decide cosa utilizzare: HashSet o EntityCollection? Perché alcune cose diventano HashSet?

risposta

2

Cambio delega monitoraggio viene creato solo quando sono soddisfatte queste due condizioni:

  • classe POCO è pubblico, non sigillato e non astratta
  • Tutti persistito proprietà (con getter e setter) sono contrassegnato come virtuale
+0

Ouch, ho appena ispezionato la classe ancora una volta e ho capito che la raccolta non era contrassegnata come virtuale :) Grazie per il suggerimento! – Jefim