Mettre à jour le schéma de base de données dans Entity Framework

.net entity-framework schema

Question

J'ai installé VS SP1 et joué avec Entity Framework.

J'ai créé un schéma à partir d'une base de données existante et essayé quelques opérations de base.

La plupart des opérations se sont bien déroulées, à l'exception de la mise à jour du schéma de base de données.

J'ai changé la base de données de toutes les manières basiques:

  • a ajouté un nouveau tableau
  • supprimé une table
  • ajout d'une nouvelle colonne à une table existante
  • supprimé une colonne d'une table existante
  • changé le type d'une colonne existante

Les trois premiers se sont bien déroulés, mais le type et la suppression de colonne n'ont pas suivi les modifications apportées à la base de données.

Y a-t-il un moyen de créer du travail avec le designer? Ou n'est-ce pas pris en charge pour le moment? Je n'ai pas encore trouvé de matériel connexe, mais je cherche toujours.

Réponse acceptée

J'imagine que cela ne se produira peut-être pas parce qu'ils briseraient la construction du code existant, mais ce n'est qu'une supposition de ma part.

Voici ma logique:

Tout d'abord, EF est supposé avoir plus d'un mappage de table 1: 1, il est donc fort possible que le fait de supprimer une colonne de la table A ne signifie pas que pour cette entité, il ne devrait pas y avoir de propriété Description. Vous pouvez simplement mapper cette propriété sur une autre table.

Deuxièmement, changer un type pourrait tout simplement briser les constructions. c'est la seule raison.


Réponse populaire

J'ai constaté qu'en général, la fonctionnalité "Mettre à jour le modèle à partir d'une base de données" présente encore quelques bogues.

Les clés sont le tueur pour moi - je n’ai encore apporté aucune modification à une relation de clé étrangère ni ajouté une clé primaire à une table et le programme de mise à jour fonctionne correctement (en ce sens qu’il générera une erreur de compilation sur le fichier généré. code) - mais pour résoudre le problème, il suffit de supprimer le modèle et de le réimporter (cela ne prend qu’une minute) - c’est loin d’être idéal, mais je n’ai jamais eu un échec après une importation "récente".



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow