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

时间:2010-11-25 03:34:11

标签: linq-to-sql asp.net-mvc-2 stored-procedures multiple-resultsets

如何在earch上访问第二,第三,第四个结果集?

控制器:

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 个答案:

答案 0 :(得分:1)

Yup,Linq To Sql的已知限制/宠物仇恨。当您在画布上删除存储过程时,L2SQL会生成一个返回类型为ISingleResult<T>的方法。

解决方法是使用Entity Framework ...

开玩笑,here是L2SQL的解决方法。

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

旁注 - 为什么要迭代ViewData中的项目?您正在View中返回模型,您应该直接绑定到该模型。

E.g

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

然后:

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