請考慮以下情況。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