2017-03-27 2 views
0

Mon application Web ASP.NET MVC doit extraire des données de la base de données existante à l'aide de procédures stockées T-SQL. J'ai vu des didacticiels sur la façon de le faire en utilisant l'approche code-first (essentiellement pour un modèle nommé Product, Entity Framework génère des procédures stockées comme Product_Update, Product_Delete, etc.).Procédures stockées ASP.NET MVC & Entity Framework

Mais dans mon cas, je ne peux pas utiliser le code d'abord b/c la base de données et les procédures stockées existent déjà et leurs noms ne suivent pas cette convention. Quel est le chemin à parcourir? Toute aide serait appréciée. Merci d'avance.

  • Begin Edité 2017-03-28

Si je vais sur l'utilisation des classes de ADO.NET droites comme dit Shyju et WillHua, seront annotations de données sur mes classes de données du modèle travail? Sinon, comment la validation, etc. peut-elle être implémentée?

Si je suis cette approche, ai-je besoin de référencer Entity Framework dans mon projet?

  • Fin Edité 2017-03-28
+0

Vous pouvez toujours utiliser old school ado.net (SqlCommand)? – Shyju

Répondre

0

Si vous utilisez Entity Framework que vous pourriez faire quelque chose de semblable à ce qui suit:

 var startDateParam = new SqlParameter("StartDate", 8) { Value = startDate }; 
     var endDateParam = new SqlParameter("EndDate", 8) { Value = endDate }; 
     var parameters = new[] { startDateParam, endDateParam }; 

     var result= Context.Database.SqlQuery<CampaignReferralReportItem>("CampaignReferralReportItems @StartDate, @EndDate", parameters).ToList<CampaignReferralReportItem>(); 
     return result; 

Donc ce que vous avez ici est la déclaration de deux paramètres qui sont passés dans la procédure stockée 'CampaignReferralReportItems'. Une fois la requête terminée, le résultat est mappé aussi étroitement que possible à la classe CampaignReferralReportItem. Gardez à l'esprit l'ordre des propriétés doit être identique que les résultats de la requête ou le mappage peut jeter des exceptions.

Il est à noter que le Contexte indiqué dans le code ci-dessus est votre DataContext.

Aussi, avant de commencer à lancer ce type de code partout. Il est peut-être la peine d'examiner la Repository pattern