2013-02-09 27 views
6

Qual è l'effetto di non proprietà di spostamento del contrassegno virtuale per entità Entity Framework (v4)?Entity Framework Proprietà virtuali

Se non utilizzo il caricamento lazy, ma trascuro di caricare correttamente, cosa succederà all'accesso alla proprietà (non caricata)?

Ci sarebbe qualche altro impatto al di fuori del caricamento lazy, o è la caratteristica principale che richiede proprietà di navigazione virtuale?

risposta

7

Ci sono due effetti. Uno è in caricamento lento, che non funzionerà se la proprietà non è virtual. Ma il carico pigro non è sempre qualcosa che desideri.

Il secondo è il rilevamento del cambiamento. Se si utilizzano POCO puri o si utilizzano i proxy ma non si effettuano le proprietà virtual, la modifica del rilevamento diventa più complessa.

È possibile ottenere ulteriori informazioni sul rilevamento modifiche here.

0

Se ti stai chiedendo se il caricamento differito è supportato con oggetti POCO, allora penso che sarai felice di sapere che puoi anche caricare Deferred Loading con POCO.

Ci sono due cose che dovete fare per ottenere il supporto Caricamento differito con entità POCO:

  1. dichiarare la proprietà che si desidera caricare pigramente come virtuale. Queste proprietà possono essere qualsiasi tipo di raccolta che implementa ICollection o possono essere un riferimento che rappresenta una relazione 1/0..1.

  2. abilitare il caricamento differita del contesto

Vedi MSDN's "POCO in the Entity Framework" post.

Problemi correlati