3 raisons d'utiliser le code first design avec Entity Framework
1) Moins de larves, moins de ballonnement
L'utilisation d'une base de données existante pour générer un fichier de modèle .edmx et les modèles de code associés génère une pile géante de code généré automatiquement. Vous êtes imploré de ne jamais toucher à ces fichiers générés de peur de casser quelque chose ou de remplacer vos modifications par la génération suivante. Le contexte et l'initialiseur sont également coincés dans ce gâchis. Lorsque vous devez ajouter des fonctionnalités à vos modèles générés, comme une propriété en lecture seule calculée, vous devez étendre la classe de modèle. Cela finit par être une exigence pour presque tous les modèles et vous vous retrouvez avec une extension pour tout.
Avec le code d'abord, vos modèles codés à la main deviennent votre base de données. Les fichiers exacts que vous créez sont ce qui génère la conception de la base de données. Il n'y a pas de fichiers supplémentaires et il n'est pas nécessaire de créer une extension de classe lorsque vous souhaitez ajouter des propriétés ou tout autre élément que la base de données n'a pas besoin de connaître. Vous pouvez simplement les ajouter dans la même classe tant que vous suivez la syntaxe appropriée. Heck, vous pouvez même générer un fichier Model.edmx pour visualiser votre code si vous le souhaitez.
2) Plus de contrôle
Lorsque vous accédez à la base de données en premier, vous êtes à la merci de ce qui est généré pour vos modèles à utiliser dans votre application. Parfois, la convention de dénomination n'est pas souhaitable. Parfois, les relations et les associations ne sont pas tout à fait ce que vous voulez. D'autres fois, les relations non transitoires avec le chargement paresseux font des ravages sur vos réponses API.
Bien qu'il existe presque toujours une solution aux problèmes de génération de modèles que vous pourriez rencontrer, le code en premier vous donne un contrôle complet et fin dès le départ. Vous pouvez contrôler tous les aspects de vos modèles de code et de la conception de votre base de données dans le confort de votre objet métier. Vous pouvez spécifier précisément les relations, les contraintes et les associations. Vous pouvez définir simultanément des limites de caractères de propriété et des tailles de colonne de base de données. Vous pouvez spécifier quelles collections liées doivent être chargées avec impatience ou ne pas être sérialisées du tout. En bref, vous êtes responsable de plus de choses, mais vous contrôlez entièrement la conception de votre application.
3) Contrôle de version de la base de données
C'est un gros problème. La gestion des versions des bases de données est difficile, mais avec les migrations de code d'abord et de code d'abord, c'est beaucoup plus efficace. Parce que votre schéma de base de données est entièrement basé sur vos modèles de code, en contrôlant la version de votre code source, vous contribuez à la version de votre base de données. Vous êtes responsable du contrôle de l'initialisation de votre contexte, ce qui peut vous aider à effectuer des opérations telles que l'amorçage de données commerciales fixes. Vous êtes également responsable de la création des premières migrations de code.
Lorsque vous activez pour la première fois les migrations, une classe de configuration et une migration initiale sont générées. La migration initiale est votre schéma actuel ou votre ligne de base v1.0. À partir de ce moment, vous ajouterez des migrations horodatées et étiquetées avec un descripteur pour faciliter la commande des versions. Lorsque vous appelez add-migration à partir du gestionnaire de packages, un nouveau fichier de migration sera généré contenant tout ce qui a changé dans votre modèle de code automatiquement dans une fonction UP () et DOWN (). La fonction UP applique les modifications à la base de données, la fonction DOWN supprime ces mêmes modifications dans le cas où vous souhaitez annuler. De plus, vous pouvez modifier ces fichiers de migration pour ajouter des modifications supplémentaires telles que de nouvelles vues, index, procédures stockées, etc. Ils deviendront un véritable système de gestion des versions pour votre schéma de base de données.