3 raisons d'utiliser le code first design avec Entity Framework
1) Moins d'éléments inutiles, moins d'éléments superflus
L'utilisation d'une base de données existante pour générer un fichier modèle .edmx et les modèles de code associés donne lieu à un énorme tas de code généré automatiquement. Nous vous prions de ne jamais toucher à ces fichiers générés, de peur de casser quelque chose ou que vos modifications soient écrasées lors de la prochaine génération. Le contexte et l'initialisateur sont également mélangés dans cette pagaille. Lorsque vous avez besoin d'ajouter une fonctionnalité à vos modèles générés, comme une propriété calculée en lecture seule, vous devez étendre la classe du 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 first, vos modèles codés à la main deviennent votre base de données. Ce sont les fichiers exacts que vous construisez qui génèrent 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 dont la base de données n'a pas besoin d'être informée. Vous pouvez simplement les ajouter dans la même classe tant que vous suivez la syntaxe appropriée. Si vous le souhaitez, vous pouvez même générer un fichier Model.edmx pour visualiser votre code.
2) Un meilleur contrôle
Lorsque vous optez pour la DB en premier, vous êtes à la merci de ce qui est généré pour vos modèles en vue de leur utilisation 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 chargement paresseux font des ravages dans vos réponses API.
Bien qu'il existe presque toujours une solution aux problèmes de génération de modèles que vous pouvez rencontrer, le fait de commencer par le code vous donne un contrôle complet et fin dès le départ. Vous pouvez contrôler chaque aspect de vos modèles de code et de la conception de votre base de données depuis le confort de votre objet d'entreprise. Vous pouvez spécifier avec précision les relations, les contraintes et les associations. Vous pouvez définir simultanément les limites de caractères des propriétés et la taille des colonnes de la base de données. Vous pouvez spécifier les collections liées qui doivent être chargées rapidement, ou ne pas être sérialisées du tout. En bref, vous êtes responsable d'un plus grand nombre de choses, mais vous gardez le contrôle total de la conception de votre application.
3)Contrôle de la version de la base de données
C'est un gros morceau. Le versionnement des bases de données est difficile, mais avec le code first et les migrations code first, c'est beaucoup plus efficace. Comme le schéma de votre base de données est entièrement basé sur vos modèles de code, en contrôlant la version de votre code source, vous aidez à versionner votre base de données. Vous êtes responsable du contrôle de l'initialisation de votre contexte, ce qui peut vous aider à faire des choses comme l'ensemencement de données commerciales fixes. Vous êtes également responsable de la création des premières migrations de code.
Lorsque vous activez les migrations pour la première fois, une classe de configuration et une migration initiale sont générées. La migration initiale est votre schéma actuel ou votre base de référence v1.0. À partir de ce moment, vous ajouterez des migrations qui seront horodatées et étiquetées avec un descripteur pour faciliter le classement des versions. Lorsque vous appelez add-migration depuis le gestionnaire de paquets, 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 effectuer un retour en arrière. De plus, vous pouvez modifier ces fichiers de migration pour ajouter des changements supplémentaires tels que de nouvelles vues, index, procédures stockées et autres. Ils deviendront un véritable système de gestion des versions pour votre schéma de base de données.
http://www.itworld.com/development/405005/3-reasons-use-code-first-design-entity-framework