ASP.NET MVC 2: Aufruf der gespeicherten Prozedur, mehrere Result Erste
-
28-09-2019 - |
Frage
Wie auf earch kann ich die zweiten Zugang, dritte, vierte Ergebnismenge?
Controller:
var dataContext = new DealDataContext();
XElement xmlString = new XElement("asd");
var deals = dataContext.spSearchDeals(xmlString);
return View(deals);
Ausblick:
<% foreach (spSearchDealsResult d in (IEnumerable)ViewData.Model)
{ %>
<li> <%: d.TagLabel %> </li>
<% } %>
Dieses so einfach wie es nur geht ... aber ich kann nur das erste resulset zugreifen. HILFE!
Lösung
Yup, eine bekannte Einschränkung / pet hate mit LINQ to SQL. Wenn Sie auf der Leinwand gespeicherte Procs fallen, erzeugt L2SQL eine Methode mit Rückgabetyp ISingleResult<T>
.
Die Abhilfe ist Entity Framework verwenden ...
Just kidding, hier ist die L2SQL Abhilfe.
Grundsätzlich ändern Sie den Rückgabetyp IMultipleResult<T>
. (Wer wusste)
Auf einer seitlichen Anmerkung - warum sind Sie Iterieren durch Elemente in der Viewdata? Sie sind das Modell in der Ansicht zurückkehren, Sie direkt zu diesem Modell binden sollten.
Z. B
Inherits="System.Web.Mvc.ViewPage<IEnumerable<SearchDeal>>"
und dann:
<% foreach (var deal in Model.SearchDeals) %>