Quel effet(s) du mot clé virtual ont dans l'Entity Framework 4.1 POCO Premier Code?
Ne le virtual
mot a un effet sur les propriétés de EF Premier Code?. Quelqu'un peut-il décrire l'ensemble de ses ramifications dans des situations différentes?
Par exemple, je sais qu'il peut contrôler chargement différé - si vous utilisez le mot clé virtual sur une ICollection/un-à-plusieurs relations de propriété, il sera paresseux-chargé par défaut, alors que si vous laissez le mot-clé virtuel, il sera de chargement hâtif.
Quels sont les autres effets peuvent virtual
mot-clé ont en EF avec des entités POCO?. Devrais-je le faire par défaut à utiliser virtual
sur toutes mes propriétés, ou le défaut de ne pas l'utiliser?
Vous devez vous connecter pour publier un commentaire.
Jusqu'à présent, je sais de ces effets.
virtual
ICollections seront chargement paresseux, à moins que vous marquer spécifiquement autrement.Plus efficace le suivi des modifications. Si vous remplissez toutes les conditions suivantes, alors votre suivi des modifications peuvent utiliser une méthode plus efficace en accrochant vos propriétés virtuelles. À partir du lien:
Un autre lien utile décrivant c'est MSDN est Exigences pour la Création POCO Procurations.
public virtual byte[] bigData { get; set; }
" chargement paresseux ?.Select(a=>new { fields you want })
.Ce mot clé virtual est liée au thème de chargement de données à partir d'entity framework (chargement paresseux, désireux de chargement et de chargement explicite).
Vous devez utiliser virtuel mot-clé, lorsque vous voulez charger les données avec un chargement différé.
chargement paresseux est le processus par lequel une entité ou d'une collection d'entités est automatiquement chargé à partir de la base de données la première fois qu'il est accessible.
Par exemple, lors de l'utilisation du Blog de la classe d'entité définie ci-dessous, les Messages liés sera chargé pour la première fois les Messages de navigation de la propriété est accessible:
Chargement différé des Postes de collecte peut être désactivée en faisant les Postes de la propriété de non-virtuel.
si le chargement paresseux est éteint, le Chargement des Postes de collecte peut encore être réalisé en utilisant désireux de chargement (en utilisant la méthode include) ou Explicitement le chargement des entités liées (à l'aide de la méthode de Chargement).
Avec Impatience De Chargement:
Explicitement De Chargement:
Include()
.