0

Comment puis-je accéder aux deuxième, troisième et quatrième ensembles de résultats?ASP.NET MVC 2: Appel de procédure stockée, obtention de plusieurs ensembles de résultats

Controller:

var dataContext = new DealDataContext(); 
XElement xmlString = new XElement("asd"); 
var deals = dataContext.spSearchDeals(xmlString); 
return View(deals); 

Vue:

<% foreach (spSearchDealsResult d in (IEnumerable)ViewData.Model) 
{ %> 

    <li> <%: d.TagLabel %> </li> 

<% } %> 

Ce aussi simple que ça devient ... mais je ne peux accéder à la première resulset. AIDEZ-MOI!

Répondre

1

Yup, une limite connue/pet haine avec Linq To Sql. Lorsque vous déposez des procédures stockées sur le canevas, L2SQL génère une méthode avec le type de retour ISingleResult<T>.

La solution est d'utiliser Entity Framework ...

Just Kidding, here est la solution de contournement L2SQL.

Fondamentalement, vous changez le type de retour à IMultipleResult<T>. (qui le savait)

Sur une note de côté, pourquoi parcourez-vous les éléments de ViewData? Vous renvoyez le modèle dans la vue, vous devez lier directement ce modèle.

par exemple

Inherits="System.Web.Mvc.ViewPage<IEnumerable<SearchDeal>>" 

puis:

<% foreach (var deal in Model.SearchDeals) %> 
+0

Je ne suis pas sûr de Entity Framework, mais ce que je suis en train d'accomplir juste appeler un sproc et obtenir les résultats. Je ne veux pas avoir à faire avec la conception du schéma, etc. Je veux juste appeler un sproc, recevoir les résultats et les parcourir et les afficher sur la page. – dcolumbus

+0

l'instruction "Entity Framework" était une blague. Vous n'avez pas à toucher au schéma - vous avez un SPROC, vous l'avez ajouté au concepteur L2SQL, l'article que j'ai ajouté montre comment faire ce que vous voulez. Quel est le problème? – RPM1984

+0

Le problème est que dans l'exemple que vous m'avez envoyé, "typeof" se rapporte à des entités de table qui ont été déplacées dans le concepteur. Dans mon cas, ce n'est pas ce qui se passe ... – dcolumbus