Le virtual
mot - clé a- t -il un effet lorsqu'il est utilisé sur les propriétés dans EF Code First?. Quelqu'un peut-il décrire toutes ses ramifications dans différentes situations?
Par exemple, je sais qu'il peut contrôler le chargement différé - si vous utilisez le mot-clé virtuel sur une propriété de relation ICollection / un-à-plusieurs, il sera chargé par défaut par défaut, tandis que si vous laissez le mot-clé virtuel hors, il être impatient.
Quels autres effets un virtual
mot-clé peut -il avoir dans EF avec des entités POCO?. Dois-je le rendre par défaut à utiliser virtual
sur toutes mes propriétés, ou par défaut à ne pas l'utiliser?
la source
public virtual byte[] bigData { get; set; }
" Le chargement est-il paresseux?.Select(a=>new { fields you want })
.Ce mot-clé virtuel est lié au thème du chargement des données à partir du framework d'entité (chargement paresseux, chargement rapide et chargement explicite).
Vous devez utiliser un mot-clé virtuel lorsque vous souhaitez charger des données avec un chargement paresseux.
le chargement différé est le processus par lequel une entité ou une collection d'entités est automatiquement chargée à partir de la base de données lors du premier accès.
Par exemple, lors de l'utilisation de la classe d'entité Blog définie ci-dessous, les publications associées seront chargées lors du premier accès à la propriété de navigation Posts:
Le chargement paresseux de la collection Posts peut être désactivé en rendant la propriété Posts non virtuelle.
si le chargement différé est désactivé, le chargement de la collection Posts peut toujours être réalisé en utilisant un chargement rapide (en utilisant la méthode Include) ou en chargeant explicitement des entités liées (en utilisant la méthode Load).
Chargement ardent:
Chargement explicite:
la source
Include()
.