2013-08-16 3 views
0

J'ai la question suivante.Code d'abord et procédure stockée

Je tente d'exécuter une procédure stockée qui retourne une table avec Entity Framework 5 dans l'application MVC 4 en utilisant le modèle Code First.

D'abord, j'ai un Entity appelé Genres:

public class Genres 
{ 
    [Key] 
    public string Genre { get; set; } 
    public int Artists { get; set; } 
    public int Albums { get; set; } 
} 

Ensuite, j'ai DbContext:

public class DbContext : DbContext 
{ 
    public DbSet<Genres> Genres { get; set; } 
} 

Et puis, j'exécuter ma procédure stockée avec SqlQuery:

 var DbContext = new DbContext(); 

     ViewBag.Genres = DbContext.Genres.SqlQuery("psy_trance_fm_select_genres"); 

Tout fonctionne bien, b J'ai une question.

Lorsque j'exécute ma procédure stockée Entity Framework 5 crée deux tables dans ma base de données. Le premier est __MigrationHistory, le second est Genres.

Je n'ai pas besoin de créer une table Genres car je ne l'utilise pas du tout.

Aidez-moi s'il vous plaît. Merci.

PS - J'ai écrit mon code à l'aide de cet article: http://msdn.microsoft.com/en-us/data/jj592907.aspx

Répondre

1

Si vous utilisez une procédure stockée, alors vous ne devriez pas utiliser la stratégie de code d'abord.

Vous devriez utiliser la stratégie Database-First car avoir une procédure stockée implique l'existence d'une base de données.

Et votre table Genre est créée car c'est ce que Code-First fait - elle a créé des tables dans la base de données à partir d'entités créées en code. La base de données d'abord-stratégie, d'autre part, importerait votre schéma de base de données existant et créer des entités à partir de cela. Y compris les procédures stockées fortement typées.

Here est un vidéo + tutoriel sur MSDN expliquant les concepts de la stratégie Database-First avec Entity Framework.

+0

Merci pour votre commentaire, juhan_h. Pouvez-vous me dire, je peux en savoir plus sur les différents modèles et, en particulier, le modèle Database-First. Merci! –

+0

J'ai ajouté un lien vers ma réponse qui vous dirige vers un tutoriel sur MSDN. J'espère que cela aide. –

+0

Et encore une question. Serait-il une bonne idée de réécrire tous mes SP avec EF Code-First modèle et LINQ? Merci! –