2017-08-07 4 views
0

Est-il possible de définir une entité qui n'est pas mappée à une table dans la base de données et d'utiliser une procédure stockée pour renvoyer les entrées?Procédures EF et stockées pour remplir les entrées d'une entité

J'ai trouvé que je peux utiliser "Ignorer" afin que la table dans la base de données ne soit pas créée pour une entité, mais comment puis-je définir une procédure stockée pour remplir les données pour cette entité?

Remarque: J'utilise d'abord le code.

Merci.

Répondre

0

Vous pouvez créer une classe de modèle normale qui n'est pas référencée par votre contexte de base de données. La classe de modèle doit contenir les propriétés que vous retournerez à partir de votre proc stockée. Ensuite, utilisez

context.Database.ExecuteSqlCommand("storedProc", params) 
// OR 
context.Database.SqlQuery<YourEntityType>("storedProc",params); 
+0

Je suis en mesure de les obtenir sur cette façon, mais ce que je besoin est le DbSet être mis en correspondance que SP, puisque je me sers d'un contrôle de source de données (C1DataSource de ComponentOne Studio) qui peut être liée DbSets défini dans le DbContext seulement (à première vue). –

+0

Ok, ajoutez-le au contexte, puis utilisez Ignorer . –

+0

Je l'ai déjà fait. Ce dont j'ai besoin, c'est d'un moyen de dire à EF d'utiliser le jeu de résultats d'une procédure stockée pour obtenir des entrées d'entités, puisque ce n'est pas une table, c'est un resultset. Je pense qu'il n'y a aucun moyen. –