Je suis le tutoriel de scott gu de Here pour récupérer les données en utilisant la procédure stockée. Je définis le type de retour de la procédure stockée en supprimant le SProc sur la classe. Maintenant, ma question est que pouvons-nous définir viewmodel
comme le type de retour de la procédure stockée, comme mon affichage est fortement tapé avec mon viewmodel
Viemodel avec procédure stockée
Répondre
J'ai écrit une vue de base de données au lieu de viewmodel, puis faites glisser l'affichage vers dbml et définissez le type de retour de la procédure stockée à afficher. Cela résout mon problème. Il peut être utile pour quelqu'un d'autre
Vous pouvez associer le type de retour de la procédure stockée à un type personnalisé: In .edmx Cliquez sur la procédure stockée importée et définissez le nom d'importation de la fonction sur SomeCustomName et sélectionnez le type de retour -> Entités -> SomeEntity. Maintenant que la procédure stockée renvoie des modèles d'entité, vous pouvez mapper ces modèles à un modèle de vue qui est finalement renvoyé à la vue. Il est considéré comme une bonne pratique d'avoir des modèles de vue adaptés aux vues au lieu de passer directement les objets de transport SQL.
[Je dois encore faire quoi que ce soit avec ASP.NET MVC, cette suggestion peut-être loin, mais ...]
Une option serait de créer votre classe ViewModel dans votre concepteur dbml en allant à droite -Click-> Ajouter-> Classe. Puis, supprimez votre procédure stockée sur la nouvelle classe dans le concepteur, ou si cela échoue (comme cela arrive souvent, pour moi), déposez la procédure stockée sur la surface du concepteur et définissez son type de retour (Propriétés -> Type de retour) la nouvelle classe.
C'est une façon d'avoir une procédure stockée retourner un type personnalisé qui est pas une véritable entité LINQ to SQL et pas une procédure stockée autogénérée * Classe de résultat. (Depuis que j'ai entendu dire que c'est mal de passer les objets du modèle à la vue - idéalement, vous passez un objet ViewModel, n'est-ce pas?).
chaque fois que dbml sera recréé cette classe sera effacée .. – Tassadaque
Je ne suggère pas de créer la classe dans votre fichier .Designer.cs - sûrement n'importe quoi créé manuellement * sera * supprimé * lors de la prochaine sauvegarde de dbml. Ce que je suggère est de créer la classe dans le concepteur entity/dbml, tout comme vos classes d'entités LINQ to SQL normales. Sauf au lieu de créer la table en faisant glisser la table de la base de données sur la surface, il vous suffit de créer la classe en utilisant la procédure clic-droit-> Ajouter-> Classe que j'ai mentionnée. Tout élément créé dans le concepteur à l'aide de cette méthode sera conservé lors de la régénération du fichier .Designer.cs. – shaunmartin
- 1. Procédure stockée exécutant une autre procédure stockée
- 2. problème avec la procédure stockée?
- 3. iReport avec Oracle Procédure stockée
- 4. procédure stockée
- 5. Procédure stockée?
- 6. procédure stockée
- 7. procédure stockée
- 8. procédure stockée
- 9. Procédure stockée dans nHibernate?
- 10. Procédure stockée SQL Server
- 11. Procédure stockée SQL Question
- 12. Recherche d'une procédure stockée
- 13. comment créer une procédure stockée à partir d'une procédure stockée
- 14. Appel d'une procédure stockée à partir d'une autre procédure stockée
- 15. procédure stockée cfquery oracle
- 16. procédure stockée Hit Counter
- 17. procédure stockée supprimer requête
- 18. procédure stockée Problème
- 19. structure de procédure stockée
- 20. procédure stockée mysql
- 21. Procédure stockée rompue enregistrée
- 22. IF/ELSE Procédure stockée
- 23. Asp.net MVC avec SQL Server procédure stockée
- 24. Problème avec cette simple procédure stockée
- 25. procédure stockée avec curseur dans MySQL
- 26. Problème avec la procédure stockée SQL
- 27. procédure stockée Linq avec des résultats dynamiques
- 28. Procédure stockée SQL avec paramètres optionnels infinis
- 29. Linq to Sql avec procédure stockée
- 30. problème avec la procédure stockée dans MySQL
J'utilise linq à sql – Tassadaque