代码之家  ›  专栏  ›  技术社区  ›  dcolumbus

ASP.NET MVC 2:调用存储过程,获取多个结果集

  •  0
  • dcolumbus  · 技术社区  · 15 年前

    我怎样才能访问第二、第三、第四个结果集?

    控制器:

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

    视图:

    <% foreach (spSearchDealsResult d in (IEnumerable)ViewData.Model)
     { %>
    
        <li> <%: d.TagLabel  %> </li>
    
    <% } %>
    

    这很简单。。。但我只能访问第一个结果集。救命啊!

    1 回复  |  直到 15 年前
        1
  •  1
  •   RPM1984    15 年前

    是的,Linq To Sql的一个已知的限制/讨厌之处。当您将存储过程放到画布上时,L2SQL生成一个返回类型为 ISingleResult<T> .

    这个 解决办法 是使用实体框架。。。

    只是开玩笑, here 是L2SQL解决方案。

    基本上,您将返回类型更改为 IMultipleResult<T> . (谁知道)

    另一方面-为什么要遍历ViewData中的项?在视图中返回模型时,应直接绑定到该模型。

    例如

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

    然后:

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