J'ai un modèle mappé à la base de données via EF7. Toutes les propriétés sont identiques aux colonnes mappées de la table.Entity Framework 7 Résultat de la procédure stockée au modèle
Maintenant, j'ai une procédure stockée, qui renvoie des colonnes jointes, mais la base est toujours le modèle mappé.
Voici mon modèle (Entité) qui est mappé à Table1 sur ma base de données.
public partial class Table1 { public int id { get; set; } public bool Column1{ get; set; } public int Column2 { get; set; } public int Column3 { get; set; } public int Column4 { get; set; } public int Column5 { get; set; } }
Mon StoredProcedure retourne toutes ces colonnes et de plus d'une colonne d'une autre table, qui contient des informations supplémentaires sur cet objet.
Alors Mon StoredProcedure ressemble à ceci:
CREATE PROCEDURE Table1_Select
AS
BEGIN
SELECT Column1,
Column2,
Column3,
Column4,
Column5,
Table2.JoinedColumn1
FROM Table1
JOIN Table2 on Table1.ID = Table2.ID_Table1
END
Mon idée était d'ajouter juste une propriété au modèle
public string JoinedColumn1 {get; set;}
Cela fonctionne pour exécuter le StoredProcedure, mais il ne fonctionne pas dès comme je veux obtenir une entité avec
MyContext.Table1.FirstOrDefault(t=>t.id == 1)
cela renvoie toujours un serveur Erreur 500 dans Fiddler alors que l'exécution de la procédure stockée avec "Table1.FromSql (" Table1Select ")" fonctionne correctement. Ou dois-je décider d'utiliser StoredProcedures pour mon modèle ou d'accéder directement aux entités?
Des bonnes pratiques ou des solutions pour cela?
Merci beaucoup à l'avance. Nicn
Pourquoi ne pas les procédures de magasin inclus dans le projet en utilisant Entity Framework Database Première approche? –
Comment ajouter une commande StoredProcedures dans Scaffold? J'ai seulement trouvé [ce lien] (https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes- (Octobre-1, -2015) # table-selection-in-reverse-engineering) qui dit - t pour les tables ou -s pour les schémas ... – nicn