Code EF First: Initialisation de la propriété de navigation - Pour initialiser ou non?
Dans le code du cadre d'entité en premier, une question courante se pose concernant l'initialisation des propriétés de navigation dans vos classes POCO (Old Clr objet). Devriez-vous les initialiser ou les laisser tels quels? Explorons les avantages et les inconvénients.
Collections: Une question de style
Pour les propriétés de navigation de collecte (comme ICollection<Address>
dans une classe User
), l'initialisation est en grande partie une question de style de codage personnel. Il n'a pas d'impact intrinsèquement la logique métier de l'application. Cependant, certains développeurs préfèrent l'initialisation paresseuse pour éviter les erreurs de potentiel NullReferenceException
et la création d'objets inutile.
Propriétés de référence: Évitez l'initialisation
Contrairement aux collections, l'initialisation des propriétés de navigation de référence (par exemple, License
dans une classe User
) est généralement découragée. Voici pourquoi:
EF Core Considérations
Dans EF Core, bien que la fixation des relations ne soit pas directement impactée par les propriétés de référence initialisées dans les constructeurs, le chargement paresseux ne les écrasera toujours pas. De plus, l'initialisation de ces propriétés peut interférer avec la méthode Include
et provoquer des problèmes lorsque les données d'ensemencement en utilisant HasData
.
Recommandation:
Pour éviter les complications potentielles, il est de la meilleure pratique pour pas Initialiser les propriétés de navigation de référence dans vos constructeurs. L'initialisation de la collecte reste une question de préférence personnelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!