请考虑以下情况。
有一个存储过程返回
出于报告目的运行查询。
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表单编程模型无法实现完全分离
的代码和内容,并可以像“意大利面条”一样asp经典。(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 %>
(当我试图在“Protected Sub Page_Load…”下用代码隐藏方式分离数据访问时,
我在.aspx页中使用的代码中的变量一直给出错误:
“[变量]未声明。由于其保护级别,它可能无法访问。”)
如果proc的结果集不是强类型的,
是世界末日,糟糕的编程实践,可维护性的噩梦,
最坏的选择,等等。?
如果存储过程的结果集应该是强类型的,
那么最有效的方法是什么?(我没有
提前谢谢你的帮助。