请考虑以下情况。asp.net从proc多个结果集:是否有必要将结果映射到类?如果是这样,怎么样?
您有一个存储过程返回多结果集 查询运行报告的目的。
proc也使用表值参数(SQL 2008)。 http://www.sommarskog.se/arrays-in-sql-2008.html#LINQ_EF
这些结果集是只读的,这意味着您不必 担心更新,删除或插入。
这些结果集不映射到数据库中的任何表;这些是报告结果,而不是数据库表的镜像。现在
,我的背景是ASP经典,而我一直在试图对所有的.NET数据访问策略,阅读起来 ,看来: (1)MS是推动实体框架 (2)MS具有(3)整个话题一直是辩论的主题 (4)项目的环境帮助决定正确的数据访问策略, 和ORM似乎并未针对此数据访问方案进行优化 (5)没有用于映射多个结果集存储过程的开箱即用解决方案
此外,我正在查找完整控制html输出,所以如果使用代码, 只有中继器和文字将用于数据绑定。
我发现Web Forms编程模型无法提供完整的代码和内容分离 ,并且可以像asp classic一样“意大利面条”。 (MVC的 方法看起来更像ASP经典,但这个项目已经是WebForms的。)
我认为这将是很容易被具有相同页面上的数据访问和内嵌脚本<%%>来实现。 这里是样的代码示例将导致指出:
<%
' data access (skipping a bunch of code)....
Dim myDataSet As New DataSet()
myCommand.Fill(myDataSet)
'...etc.
Teachers = myDataSet.Tables(0).Rows
Students = myDataSet.Tables(1).Rows
'... etc.%>
然后
<% If Teachers.Count > 0 Then%>
<table><% For Each _Teachers In Teachers%>
<tr>
<td><%= _Teachers(0)%></td>
<td><%= _Teachers(1)%></td>
</tr><% Next %>
</table>
<% Else%>Hey, there's no records.<% End If %>
(当我尝试背后下的代码中的数据访问分开“保护小组的Page_Load ......” , 在后面,我在.aspx页面中使用的代码中的变量继续给错误: “[变量]不宣布它可能无法访问由于其保护级别。”)
如果结果集从亲c不是强类型, 是否是世界末日,可怕的编程实践,可维护性噩梦, 最糟糕的可能选择等等?
如果存储过程的结果集应该是强类型的,那么最有效的方法是什么? (我不是 在这个主题找到简单的教程。)
在此先感谢您的任何帮助。
感谢回答。 RE:“......考虑编写一个方法将DataTable转换为YourClass的集合”。我想我是一个OOP新手来做我自己的这部分。你认为你可以提供任何进一步的建议或资源指针? – mg1075 2010-12-11 04:11:53