2017-05-30 1 views
0

Pour notre projet, nous utilisons Entity Framework (Version 6) avec la première base de données de code. Ainsi, lorsque nous voulons changer une procédure ou une table, nous faisons cela dans une classe et générons un fichier de migration pour mettre à jour la base de données (simple Update-Database dans la fenêtre Paket-Manager).Modification d'une vue dans EntityFramework CF avec fichiers de migration

Si nous voulons changer quelque chose qui n'a pas eu une classe (comme une vue ou une procédure) on change le fichier de migration, qui ressemblera à cela comme un exemple:

public override void Up() 
{ 
    //Some other code... 

    Sql("ALTER VIEW ExampleView AS Select [Endless Lines of code]"); 
} 

Quand il vient pour de plus grandes vues, il devient très salissant très rapidement.

Ma question est

est-il un moyen « intelligent » de mettre à jour des petites choses dans une procédure ou peut-être une vue (comme changer quelque chose dans la déclaration FROM) sans créer toute une instruction SQL qui compte plusieurs lignes juste pour faire ça?

Répondre

0

Vous ne savez pas ce qui pourrait être qualifié de "intelligent", mais vous pouvez supprimer le fouillis d'instructions SQL de vos classes de migration en les plaçant dans des fichiers distincts. Ce article explique comment.

+0

Oui, nous nous sommes éloignés de cela. Travailler avec des fichiers .sql était notre solution précédente. Et avec smart, je veux dire quelque chose peut-être moins salissant. – Cataklysim

+0

Je vois, vous n'êtes pas le seul à lutter contre cela. Voir la discussion [ici] (https://github.com/aspnet/EntityFramework/issues/827) sur github – Hintham

+0

Intéressant. Eh bien, j'espère qu'ils vont bientôt ajouter la cartographie des vues. Mais merci pour ce lien. Cela montre des solutions de contournement très intéressantes. – Cataklysim