La compréhension du code premières propriétés virtuelles
Salut, je suis juste apprendre à travailler avec Entity Framework Code First et je n'arrive pas a comprendre quelque chose.J'ai créé trois modèles basés sur un tutoriel:
public class Course
{
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
public virtual ICollection<Enrollment> Enrollments{ get; set; }
}
public class Enrollment
{
public int EnrollmentID { get; set; }
public int CourseID { get; set; }
public int StudentID { get; set; }
public decimal? Grade { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
public class Student
{
public int StudentID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
Mon problème est que je ne comprends pas ce que les propriétés virtuelles le faire.Si je vérifie la base de données il n'y a pas de colonne de caisse pour chacune des propriétés , seulement pour les autres.
Donc ce qui se passe lorsque vous créez une propriété avec le mot-clé virtuel?
Vous devez vous connecter pour publier un commentaire.
Il est utilisé pour gérer chargement paresseux et le suivi des modifications.
EF va générer les types de proxy sur l'exécution, qui sont générées de façon dynamique les types de hériter de vos classes POCO et ajoutez tous les EF trucs pour gérer le chargement paresseux /suivi des modifications dans le substituée propriétés virtuelles.
Donc
virtual
n'est pas une "magie" de mot-clé ici,virtual
est ici de sorte que votre POCOs peut être hérité supplémentaires liées à EF code lors de l'exécution.Propriétés virtuelles sont là pour permettre le chargement paresseux
Lorsque vous créez une propriété ou une méthode marquée avec le mot-clé virtuel, vous serez autorisé à le remplacer dans une classe dérivée, offrant ainsi à votre méthode de travail plus spécialisés comportement en fonction des objets que vous créez.
Dans le cas de l'Entité Cadre de son aussi une convention qui indique que le chargement paresseux comportement est utilisé. Une question à ce sujet, il existe ici: Entity Framework 4.1 Propriétés Virtuelles